반응형

파이썬 코딩테스트 20

[파이썬, Python] 백준 11653: 소인수분해

문제 https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 코드 n = int(input()) if n == 1: print('') for i in range(2, n+1): if n % i == 0: while n % i == 0: print(i) n = n/i 설명 우선 n을 입력받아주고, n이 1이라면 아무것도 출력하지 않는다. 이외의 케이스는 반복문을 진행해서 해결하는데, 만약 n이 i로 나누어진다면, 각 문장의 i를 출력하고, i로 나누어지는 만큼 나누어준다.(72의 경우 2로 3번까지 나누어지므로 3번 반복) 더 이상 나누어지지 않을 때까지 반복한다.

[파이썬, Python] 백준 1978: 소수 찾기

문제 https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 코드 n = int(input()) num = map(int, input().split()) result = 0 for i in num: cnt = 0 if(i==1): continue for j in range(2, i+1): if(i%j == 0): cnt += 1 if cnt == 1: result += 1 print(result) 설명 소수를 판별하는 방법 중 하나는 '에라토스테네스의 체'라는 것을 이용하는 것인데, 위의 코드는 그것을 이용해보지 않았던..

[파이썬, Python] 백준 2869: 달팽이는 올라가고 싶다

문제 https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 코드 시간 초과 코드 import sys a, b, v= map(int, sys.stdin.readline().split()) n = 1 while True: if (a*n - (b*(n-1))) < v: n += 1 else: break print(n) 정답 코드 a, b, v= map(int, input().split()) days = (v-b)/(a-b) print(int(days) if days == int(days) else int(days..

[파이썬, Python] 백준 2675: 문자열 반복

문제 https://www.acmicpc.net/problem/2675 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 코드 T = int(input()) for _ in range(T): S = list(input()) for i in range(2,len(S)): print((S[i]*int(S[0])), end = '') print() 설명 우선 T에 테스트 케이스의 개수를 받아준다. T의 수만큼 반복문을 실행해주는데, 반복문에서 문장을 입력 받아준다. 이후 처음 입력된 숫자를 제외한 부분을 숫..

[파이썬, Python] 백준 11720: 숫자의 합

문제 https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 코드 N = int(input()) num = list(input()) sumnum = 0 for i in range(N): sumnum += int(num[i]) print(sumnum) 설명 다른 언어는 복잡한 방법을 사용해야 하는데, 파이썬은 그냥 일반적인 계산으로 하면 된다.

[파이썬, Python] 백준 11021: A+B - 7

문제 https://www.acmicpc.net/problem/11021 11021번: A+B - 7 각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다. www.acmicpc.net 코드 T = int(input()) for i in range(T): a, b = map(int, input().split()) print("Case #%s: %d"%(i+1, a+b)) 설명 테스트 케이스 T를 입력받아 준다. 이후, T회 만큼 출력해야 하기에, 반복문을 통해 T회 만큼 반복시켜준다. 반복문 안에서 각각 a,b 를 입력받고 출력해주어야 하는데, 일반적으로 출력해오던 방식으로는 출력이 어렵다. 이를 위해서 다른 출력방식을 사용하여야 한다. 출력..

[파이썬, Python] 백준 2525: 오븐 시계

문제 https://www.acmicpc.net/problem/2525 2525번: 오븐 시계 첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.) www.acmicpc.net 코드 A, B = map(int, input().split()) C = int(input()) A += C // 60 B += C % 60 if B >= 60: A+=1 B-=60 if A >= 24: A-=24 print(A,B) 설명 앞선 시계 문제와 크게 차이 없어 보이지만, 조금 더 난이도가 있다고 생각한다. C의 범위가 달라지기에 조금 더 생각을 해보아야 한다. 우선 C..

[파이썬, Python] 백준 2884: 알람 시계

문제 https://www.acmicpc.net/problem/2884 2884번: 알람 시계 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, www.acmicpc.net 코드 H, M = map(int, input().split()) if H != 0: if M >= 45: print(H, M - 45) else: print(H-1, M + 15) else: if M >= 45: print(H , M - 45) else: print(23, M + 15) 설명 간단해 보이는 문제지만, 조금 생각할 부분이 있다. 우선 45분을 빼는 문제라서, 'M'에 해당하는 '분'이 ..

[파이썬, Python] 백준 2588: 곱셈

문제 https://www.acmicpc.net/problem/2588 2588번: 곱셈 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. www.acmicpc.net 코드 a = int(input()) b = input() print(a * int(b[2])) print(a * int(b[1])) print(a * int(b[0])) print(a * int(b)) 생소한 문법이 하나 보인다. 'b[2]' 이런 문법이 있는데 이는, b 문자열의 [2]번째에 있는 단어, 숫자를 표현하는 방법이다. 사람은 1부터 숫자를 세지만, 컴퓨터는 0부터 숫자를 세기 때문에, 0,1,2... 이런 식으로 숫자를 사용하면 된다. 그렇다면 b[2]는 입력받은 수의 세번째 자리를..

[파이썬, Python] 백준 10430: 나머지

문제 https://www.acmicpc.net/problem/10430 10430번: 나머지 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000) www.acmicpc.net 코드 a, b, c = map(int, input().split()) print((a+b)%c) print(((a%c) + (b%c))% c) print((a*b) % c) print(((a%c)*(b%c))% c) 설명 문제 자체는 어려운 문제는 아닌데, 괄호가 좀 많다. 괄호의 개수를 잘 신경쓰지 않으면 틀리기 쉬운 문제다.

반응형