#10250 ACM 호텔 [백준](H99.17)
📄문제
방 번호는 YXX 나 YYXX 형태인데 여기서 Y 나 YY 는 층 수를 나타내고 XX 는 엘리베이터에서부터 세었을 때의 번호를 나타낸다. 즉, 그림 1 에서 빗금으로 표시한 방은 305 호가 된다.
손님은 엘리베이터를 타고 이동하는 거리는 신경 쓰지 않는다. 다만 걷는 거리가 같을 때에는 아래층의 방을 더 선호한다. 예를 들면 102 호 방보다는 301 호 방을 더 선호하는데, 102 호는 거리 2 만큼 걸어야 하지만 301 호는 거리 1 만큼만 걸으면 되기 때문이다. 같은 이유로 102 호보다 2101 호를 더 선호한다.
여러분이 작성할 프로그램은 초기에 모든 방이 비어있다고 가정하에 이 정책에 따라 N 번째로 도착한 손님에게 배정될 방 번호를 계산하는 프로그램이다. 첫 번째 손님은 101 호, 두 번째 손님은 201 호 등과 같이 배정한다. 그림 1 의 경우를 예로 들면, H = 6이므로 10 번째 손님은 402 호에 배정해야 한다.
예제 입력1
2 6 12 10 30 50 72
예제 출력1
402 1203
🖋️첫코드 (틀렸습니다)
#이렇게 하면 3 x 3 빌딩에 꼭대기 층에 손님 방이 잘못나온다.
```python
test_n = int(input())
for n in range(test_n):
h,w,n = list(map(int,input().split()))
room = [0,1]
room[0] = n % h
room[1] = (n // h) + 1
r = str(room[0]) + str(room[1]).zfill(2)
print(r)
🖋️정답코드
#n번째 손님을 층으로 나눴는데 나머지가 안나오는 상황때문에 오류가 있었다.
test_n = int(input())
for n in range(test_n):
h,w,n = list(map(int,input().split()))
room = [0,1]
room[0] = n % h
room[1] = (n // h) + 1
if n % h == 0:
room[0] = h
room[1] = n // h
r = str(room[0]) + str(room[1]).zfill(2)
print(r)
🧷(나만 알아듣는) 추가설명
.zfill은 문자열 앞에 0을 채울수있다. zfill(1)은 0이 없다.
Author And Source
이 문제에 관하여(#10250 ACM 호텔 [백준](H99.17)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dennis9352/10250-ACM-호텔-백준H99.17저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)