알고리즘/백준

문제 https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 문제풀이 설탕무게를 5로 나누고 딱 떨어지면 설탕무게/5의 몫을 더해주고 종료. 나머지가 떨어지지 않으면 설탕무게에서 3키로를 빼고 가방증가. 5의 배수가 떨어질때까지 빼다가 정확한 값이 나오면 종료. 만약 나눌수 없는 값이 나올경우 -1로 출력 sugar = int(input()) bag = 0 while True: if (sugar % 5) == 0: bag = bag + (sugar//5) pri..
문제 https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 문제풀이 나무 정상에 도달하면 떨어지지 않는다는것을 식으로 어떻게 표현할지 감이 올질 않았다. 단순하게 생각하면됫을것을 문제에서 제시한 그대로 올라가는 길이는 a, 떨어지는 길이는 b, 나무높이는 v로 변수를 선언하고 입력받은 세개의 수를 각각의 변수에 할당해 주었다. 나무에 도달하기 까지 걸린기간에 대한 식은 나무높이에서 마지막날에 올라간 거리를 뺴고 올라가는 길이와 떨어지는길이를 뺀 값을 나누면 값을 구할수 있었다. 이 나눈값이 소수일경우가 생겨..
문제 https://www.acmicpc.net/problem/1267 1267번: 핸드폰 요금 동호가 저번 달에 이용한 통화의 개수 N이 주어진다. N은 20보다 작거나 같은 자연수이다. 둘째 줄에 통화 시간 N개가 주어진다. 통화 시간은 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제풀이 n = int(input()) l = list(map(int, input().split())) y = 0 m = 0 for i in l: y += i // 30 * 10 + 10 m += i // 60 * 15 + 15 if y m: print('M %d' % m) else: print('Y M %d' % y) n이 통화시간이라하고 ..
문제 https://www.acmicpc.net/problem/1964 1964번: 오각형, 오각형, 오각형… 첫째 줄에 N(1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 문제풀이 오각형의 점의 개수는 다음과 같이 늘어난다 단계 합계 1 5 5 2 5 7 12 3 5 7 10 22 4 5 7 10 13 35 초기값 5와 추가되는 값 7을 변수할당해주고 입력값의 단계를 돌면서 3과 add를 start에 더해준다. add선언해준 변수가 있으니 1단계부터 for문이 시작. n = int(input()) start = 5 add = 7 for i in range(1, n) : start += add add += 3 print(start % 45678)
문제 https://www.acmicpc.net/problem/1076 문제풀이 리스트에 각 저항의 값에 해당하는 '색상' 순서대로 넣고 인덱스값을 활용하여 풀이 for문으로 입력을 받고 입력값에 해당하는 색상의 인덱스값을 뽑아 계산했다. 마지막 인덱스는 제곱계산에 활용 list = ['black','brown','red','orange','yellow','green','blue','violet','grey','white'] a,b,c = [input() for i in range(3)] result = ((list.index(a) *10) + list.index(b)) * (10**list.index(c)) print(result)
cram.dev
'알고리즘/백준' 카테고리의 글 목록