문제)
방 번호는 YXX 나 YYXX 형태인데 여기서 Y 나 YY 는 층 수를 나타내고
XX 는 엘리베이터에서부터 세었을 때의 번호를 나타낸다.
즉, 그림 1 에서 빗금으로 표시한 방은 305 호가 된다.
손님은 엘리베이터를 타고 이동하는 거리는 신경 쓰지 않는다.
다만 걷는 거리가 같을 때에는 아래층의 방을 더 선호한다.
예를 들면 102 호 방보다는 301 호 방을 더 선호하는데,
102 호는 거리 2 만큼 걸어야 하지만 301 호는 거리 1 만큼만 걸으면 되기 때문이다.
같은 이유로 102 호보다 2101 호를 더 선호한다.
여러분이 작성할 프로그램은 초기에 모든 방이 비어있다고 가정하에
이 정책에 따라 N 번째로 도착한 손님에게 배정될 방 번호를 계산하는 프로그램이다.
첫 번째 손님은 101 호, 두 번째 손님은 201 호 등과 같이 배정한다.
그림 1 의 경우를 예로 들면, H = 6이므로 10 번째 손님은 402 호에 배정해야 한다.
T = int(input())
for i in range(T):
a, b, c = map(int,input().split())
num = c // a +1
floor = c % a
if c % a == 0:
num = c//a
floor = a
print(f'{floor*100+num}')
이번 문제는 방배정 문제이다. 일단 T(테스트 데이터)를 입력값으로 넣었고,
for 문을 통해 range(T)까지 반복하도록 for 문을 사용 후 a, b, c의 입력값을 받았다.
이 후 c // a +1을 통해 호를 도출해내고, c % a를 통해 층을 도출해낸다.
그리고 if 문을 이용하여 c % a == 0이면 c // a를 통해 호수가 되고, a는 층이 된다.
마지막으로 floor에 100을 곱하고 num을 더하면 방번호가 출력이 된다.
점점 갈수록 수학적 사고가 많이 부족한 느낌이 든다. 수학에 대한 기본 개념을 잘 쌓자!
이해가 안되시거나 틀린 정보는 댓글로 알려주시면 감사하겠습니다!
'알고리즘 > 백준 - 파이썬' 카테고리의 다른 글
백준) 2775번 부녀회장이 될테야! (파이썬) (0) | 2022.06.15 |
---|---|
백준) 11653번 소인수분해 문제 (파이썬) (0) | 2022.06.15 |
백준) 11718번 그대로 출력하기 문제 (파이썬) (0) | 2022.06.10 |
백준) 7287번 등록 문제 (파이썬) (0) | 2022.06.10 |
백준) 2869번 달팽이는 올라가고 싶다... 문제 (파이썬) (0) | 2022.06.10 |
댓글