본문 바로가기

전체 글

(231)
[백준 8393번 파이썬] 합 입력값이 들어오면 1~입력값까지의 수를 다 더해 출력해주면 된다 num = int(input()) a = 0 for i in range(1, num+1): a += i print(a) for문에서 1부터 입력값+1까지 진행하면 i가 입력값까지만 제대로 진행하고 그 이후에는 멈추는 성질을 가지고 있다 즉, for문에서 최대는 수행하고자 하는 수에 1을 더한 수로 지정해야 한다
[백준 2480번 파이썬] 주사위 세개 세 개의 주사위를 던져서 세 주사위 다 같은 눈이 나오면 10000 + (같은 눈) * 1000 두 주사위만 같은 눈이 나오면 1000 + (같은 눈) * 100 다 다른 눈이 나오면 (제일 큰 눈) * 100원의 상금을 받는 코드를 작성하면 된다 import sys a, b, c = map(int, sys.stdin.readline().split()) if a == b and a == c: print(10000 + a * 1000) elif a == b or a == c: print(1000 + a * 100) elif b == c: print(1000 + b * 100) else: print(max(a, b, c) * 100) 조건문 파트답게 if문을 사용하면 쉽게 작성할 수 있는데 이때 elif문은..
[백준 2525번 파이썬] 오븐 시계 현재 시간의 시와 분을 입력받으면 두 번째 입력값인 소요 시간이 흐른 뒤의 시간을 출력하는 문제이다 소요 시간이 분 단위로 들어오는 점을 감안해서 출력값에서 시는 24시를 넘기지 않고, 분은 60분을 넘기지 않게 코딩하면 된다 import sys H, M = map(int, sys.stdin.readline().split()) a = int(sys.stdin.readline()) H += a//60 M += a%60 if M > 59: H += 1 M -= 60 if H > 23: H -= 24 print(H, M) 몫 나눗셈과 나머지 나눗셈을 통해 시와 분에 각자 증가시켜야 할 값을 더하고 그 값이 각각 24와 60 이상이 되지 않았는지 조건문을 통해 검증하면 된다
[백준 18108번 파이썬] 1998년생인 내가 태국에서는 2541년생?! 문제 CPC Bangkok Regional에 참가하기 위해 수완나품 국제공항에 막 도착한 팀 레드시프트 일행은 눈을 믿을 수 없었다. 공항의 대형 스크린에 올해가 2562년이라고 적혀 있던 것이었다. 불교 국가인 태국은 불멸기원(佛滅紀元), 즉 석가모니가 열반한 해를 기준으로 연도를 세는 불기를 사용한다. 반면, 우리나라는 서기 연도를 사용하고 있다. 불기 연도가 주어질 때 이를 서기 연도로 바꿔 주는 프로그램을 작성하시오. 입력 서기 연도를 알아보고 싶은 불기 연도 y가 주어진다. (1000 ≤ y ≤ 3000) 출력 불기 연도를 서기 연도로 변환한 결과를 출력한다. 불기 연도와 서기 연도의 차이를 출력해야하는 문제이다 올해는 2562년이라는 말이 적혀있지만 올해라는 건 정확한 연도 표시를 하고 있지 ..
[백준 10926번 파이썬] ??! 문제 준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때, 놀람을 표현하는 프로그램을 작성하시오. 입력 첫째 줄에 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어진다. 아이디는 알파벳 소문자로만 이루어져 있으며, 길이는 50자를 넘지 않는다. 출력 첫째 줄에 준하의 놀람을 출력한다. 놀람은 아이디 뒤에 ??!를 붙여서 나타낸다. 이 문제는 여느 홈페이지 로그인 화면에서 확인할 수 있는 아이디 중복 확인을 주제로 한 것이다 다행히 문제에 분명하게 적혀 있듯이 이미 존재하는 아이디를 입력한다는 전제가 깔려있다 그렇기 때문에 입력받은 문자열 뒤에 ??!을 ..
[드림핵] rev_basic_2 풀이/어셈블리어 해석 문제 파일을 다운로드받고 압축을 풀어준다 1. x64bug 해석 본 함수의 코드들인데 여기에서 주목해야 할 점은 correct와 wrong을 출력해주는 부분이다 이 이전에 있는 함수에서 해당 문자열을 고를 반환값을 줬을 가능성이 높기 때문이다 call challo.7FF746F81000 따라서 위의 코드 속 함수 주소를 더블 클릭 해주면 우리가 해석해야하는 함수의 코드들이 나오게 된다 이 함수에서 쓰이는 어셈블리어 함수 종류 mov 두 번째에서 첫 번째로 데이터 이동 jmp 무조건 분기 movzx 길이가 일치하지 않아도 이동(빈 공간 0) jae 결과가 크거나 같으면 분기(부호화 안 된 수) movsxd 길이가 일치하지 않아도 이동(빈 공간 1) je 결과 값 0이면 분기(이동) cmp 두 인자 내용 비..
[드림핵] rev_basic_8 풀이/어셈블리어 해석 문제 파일을 다운로드받고 압축을 풀어준다 1. x64bug 해석 본 함수의 코드들인데 여기에서 주목해야 할 점은 correct와 wrong을 출력해주는 부분이다 이 이전에 있는 함수에서 해당 문자열을 고를 반환값을 줬을 가능성이 높기 때문이다 call challo.7FF614ED1000 따라서 위의 코드 속 함수 주소를 더블 클릭 해주면 우리가 해석해야하는 함수의 코드들이 나오게 된다 이 함수에서 쓰이는 어셈블리어 함수 종류 mov 두 번째에서 첫 번째로 데이터 이동 jmp 무조건 분기 movzx 길이가 일치하지 않아도 이동(빈 공간 0) jae 결과가 크거나 같으면 분기(부호화 안 된 수) movsxd 길이가 일치하지 않아도 이동(빈 공간 1) je 결과 값 0이면 분기(이동) sub 캐리 포함하지 않..
[드림핵] rev_basic_7 풀이/어셈블리어 해석 문제 파일을 다운로드받고 압축을 풀어준다 1. x64bug 해석 본 함수의 코드들인데 여기에서 주목해야 할 점은 correct와 wrong을 출력해주는 부분이다 이 이전에 있는 함수에서 해당 문자열을 고를 반환값을 줬을 가능성이 높기 때문이다 call challo.7FF675BB1000 따라서 위의 코드 속 함수 주소를 더블 클릭 해주면 우리가 해석해야하는 함수의 코드들이 나오게 된다 이 함수에서 쓰이는 어셈블리어 함수 종류 mov 두 번째에서 첫 번째로 데이터 이동 jmp 무조건 분기 movzx 길이가 일치하지 않아도 이동(빈 공간 0) jae 결과가 크거나 같으면 분기(부호화 안 된 수) movsxd 길이가 일치하지 않아도 이동(빈 공간 1) je 결과 값 0이면 분기(이동) sub 캐리 포함하지 않..