단계별풀기 - 기본수학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)

 

반응형

'알고리즘 > baekjoon' 카테고리의 다른 글

20210119_코테공부  (0) 2021.01.19
20210118_코테공부  (0) 2021.01.15
20210114_코테공부  (0) 2021.01.14
20210113_코테공부  (0) 2021.01.13
20210112_코테공부  (0) 2021.01.12

+ Recent posts