알고리즘/baekjoon
20210115_코테공부
jungeun960
2021. 1. 14. 15:44
단계별풀기 - 기본수학1
# 10250 ACM 호텔 (브론즈3)
풀이1) 단순 숫자 세기 (시간 112ms 나옴)
for _ in range(int(input())):
H, W, N = map(int, input().split())
count = 0
for i in range(1,W+1):
for j in range(1,H+1):
count +=1
if count == N:
print(j*100+i)
풀이2) point. 규칙 찾기 (시간 84ms)
- 손님이 몇 층에 머물지는 N%H와 같고, 몇 번에 머물지는 N//H+1
- 단, N%H가 0일 경우에는 가장 꼭대기층이므로 H층, N//H 에 머문다
for _ in range(int(input())):
H, W, N = map(int, input().split())
a = N%H
b = N//H+1
if a == 0:
a = H
b -= 1
print(a*100+b)
# 2775 부녀회장이 될테야 (브론즈2)
- 0층 : 1 2 3 4 ...
- 1층 : 1 3 6 10 ..
- 2층 : 1 4 10 20 ..
- => 0층은 1~호수까지, 1층부터 1호는 1 고정, 나머지는 현재값과 전값 더하기
for _ in range(int(input())):
k = int(input()) #층
n = int(input()) #호
apart = [i for i in range(1,n+1)] #0층
for j in range(k): #층 수만큼 반복
for k in range(1,n): # 0번째는 1 고정이니까 1~n-1까지
apart[k] +=apart[k-1] #층별 사람 변경
print(apart[-1]) #마지막수 출력
# 2839 설탕 배달 (브론즈1)
- sugar가 음수가 되면 설탕이 나누어떨어지지 않는 것이기 때문에 -1 반환
- 5배수가 될때까지 설탕 -3 봉지 +1, 5배수이면 5로 나눈 몫 봉지에 더하기
sugar = int(input())
bag = 0
while sugar >= 0 :
if sugar % 5 == 0 : # 5의 배수이면
bag += (sugar // 5) # 5로 나눈 몫을 구해야 정수가 됨
print(bag)
break
sugar -= 3
bag += 1 # 5의 배수가 될 때까지 설탕-3, 봉지+1
else :
print(-1)
반응형