반응형

개발 연습장 223

[파이썬, 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)

[파이썬, Python] 백준 4673: 셀프 넘버

문제 https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 코드 numbers = set(range(1,10001)) remove_numbers = set() for i in range(1, 10001): for j in str(i): i += int(j) remove_numbers.add(i) self_numbers = sorted(numbers - remove_numbers) for i in se..

[파이썬, Python] 백준 15596: 정수 N개의 합

문제 https://www.acmicpc.net/problem/15596 15596번: 정수 N개의 합 C++17, Java 8, Python 3, C11, PyPy3, C99, C++98, C++11, C++14, Go, C99 (Clang), C++98 (Clang), C++11 (Clang), C++14 (Clang), C11 (Clang), C++17 (Clang) www.acmicpc.net 코드 def solve(a): return sum(a) 설명 함수를 만드는 문제인데, 간단하게 생각하면 된다. 파이썬의 문제를 보면 a는 합을 구해야 하는 정수가 저장되어 있는 리스트라고 한다. 그렇다면 solve라는 함수를 만들어서 a를 인자로 받아주고, a의 합을 sum으로 계산하여 return 해준다...

반응형