알고리즘/Java

[python] ACM호텔(10250)

유리코딩 2021. 12. 25. 21:45
반응형

알고리즘

python ACM호텔(10250)

 

1. 문제

https://www.acmicpc.net/problem/10250

 

 

2. 풀이

  • 층수와 호수를 구분하여 구한 뒤 더해준다.
  • 인원수를 높이(층수)로 나눈 나머지가 0일 경우 층수는 높이에 100을 곱해주고 / 호수는 인원수를 층수로 나눈 정수값으로 한다.
  • 인원수를 높이로 나눈 나머지가 0이 아닌 경우 층수는 인원수를 높이로 나눈 수에 100을 곱해주고 / 호수는 인원수를 높이로 나는 수의 정수값에 1을 더해준다
  • 각각 나온 층수와 호수를 더해서 출력한다.
t = int(input())

for i in range(t):
    H, W, N = map(int, input().split())
    f = 0  # 층
    ho = 0  # 호수

    # 인원/층의 나머지가 0일 때
    # 예시 5, 10, 10
    if N % H == 0:
        f = H * 100   # 500
        ho = N // H   # 2

    # 예시 5, 10, 9
    else:
        f = (N % H) * 100  # 5/9 ... 400
        ho = 1 + N // H    # 1+1 = 2
    print(f+ho)   # 502 / 402

 

[느낀점]

인원을 높이로 나눴을 때 나머지가 0인 경우와 0이 아닌 경우로 나눠 계산해야하는 방법이 바로 떠오르지 않았다. 조금 더 알고리즘 적으로 사고하는 방법을 연습해야겠다.

 

반응형