반응형

백준 215

[파이썬, 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] 백준 2839: 설탕 배달

문제 https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 코드 n = int(input()) cnt = 0 while n >= 0: if n%5 == 0: cnt += (n//5) print(cnt) break n -= 3 cnt += 1 else: print(-1) 설명 최소 개수로 배달을 하기 위해서는 5킬로짜리가 많을수록 좋다. 그러므로 만약 남은 무게가 5로 나누어진다면 최대한 사용을 해주어야 한다. 따라서 만약 n이 5로 나누어 떨어지면, 5로 나누..

[파이썬, Python] 백준 2775: 부녀회장이 될테야

문제 https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net 코드 t = int(input()) for _ in range(t): k = int(input()) n = int(input()) people = [i for i in range(1, n+1)] for _ in range(k): for x in range(1, n): people[x] += people[x-1] print(people[-1]) 설명 문제가 직관적으로 이해하기 어려웠는데 그림을 그려서 생각하니까 조금 편했다. 0층에는..

[파이썬, Python] 백준 10250: ACM 호텔

문제 https://www.acmicpc.net/problem/10250 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 코드 import math n = int(input()) for i in range(n): h, w, n = map(int, input().split()) if n > h * w: print("error") break if n % h != 0: floor = n % h else: floor = h hotel_num = math.ceil(n / h) print(floor*100 +..

[파이썬, 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] 백준 1193: 분수찾기

문제 https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 코드 import sys input = sys.stdin.readline x = int(input()) line = 0 max_num = 0 while x > max_num: line += 1 max_num += line gap = max_num - x if line%2 == 0: top = line - gap bot = gap + 1 else: top = gap + 1 bot = line - gap print('%d/%d'%(top,bot)) 설명 홀수 라인과 짝수 라인의 규칙과 x에 따른 라인의 규칙을 찾으면 해결이 가..

[파이썬, Python] 백준 2292: 벌집

문제 https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 코드 n = int(input()) house = 1 cnt = 1 while n > house: house += 6*cnt cnt += 1 print(cnt) 설명 규칙을 찾으면 간단하게 해결되는 문제인데 처음에 규칙이 안보여서 못 풀었던 문제다. 처음의 1을 기준으로 6칸이 늘어나고 늘어난 칸을 기준으로 6칸이 더 늘어난다. 즉 층마다 6칸씩 늘어나는 규칙을 가지고 있다. 각 층의 방을 카운트 하..

[파이썬, Python] 백준 1712: 손익분기점

문제 https://www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 코드 a,b,c = map(int,input().split()) if b >= c: print(-1) else: print(int(a/(c-b)+1)) 설명 우선 각 수를 입력받아 준다. 가변 비용이 가격보다 높거나 같게 된다면, 아무리 판매량을 늘려도 손익분기점을 넘을 수 없으므로 b가 c보다 같거나 크다면 -1을 출력해주자. 그렇지 않다면 손익분기점을 언젠간 넘으므로, a(고정 비용)를 c-b..

[파이썬, Python] 백준 1065: 한수

문제 https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 코드 N = int(input()) sequence_num = set() for i in range(1,N+1): num = str(i) if len(num)

반응형