본문 바로가기
IT/알고리즘

1일 N알고리즘 - #18

by Sungjun_ 2020. 5. 20.

문제

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

 

10250번: ACM 호텔

문제 ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은

www.acmicpc.net

문제는 위 사이트를 참고해주세요.

 


풀이

T = int(input())  # 테스트 케이스 개수
roomNumList = []  # 방 번호를 저장하는 리스트
for i in range(T):
    H, W, N = map(int, input().split())
    floor = str(N % H)  # 몇 층인지 저장
    if floor == '0':  
        floor = str(H)
    if N % H == 0:  
        pos = str((N // H))
    else:  
        pos = str((N // H) + 1)
    if len(pos) < 2:
        pos = '0' + pos
    roomNum = int(floor + pos)
    roomNumList.append(roomNum)
for i in range(len(roomNumList)):
    print(roomNumList[i])

 

위 코드가 처음 문제를 풀었을 때 작성한 코드이고

 

아래 코드가 중복되는? 조건들을 합쳐서 다시 작성한 코드입니다.

 

T = int(input())
for i in range(T):
    H, W, N = list(map(int, input().split()))
    if N % H == 0:
        print((H * 100) + (N // H))
    else:
        print(((N % H) * 100) + (N // H + 1))

 

str로 형 변환을 할 필요도 없이, 그냥 층수에  * 100을 하면 해결됩니다.

N % H ==> 만약 10번째 방이라 가정하고 6층짜리 건물이면 10 % 6 == 4로 4층인걸 알 수 있습니다.

N % H == 0 이면 최고층이기 때문에 그냥 H를 써줍니다.

N // H == > 위와 동일한 조건 일때, 몫이 층수를 제외한 방 번호가됩니다.

N // H + 1 ==> 최고층을 제외하고는 +1을 해줘야 정확한 방 번호가 나옵니다.

 


결과

결과 화면

 

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

1일 N알고리즘 - #20  (0) 2020.05.21
1일 N알고리즘 - # 19  (0) 2020.05.20
1일 N알고리즘 - #17  (0) 2020.05.19
1일 N알고리즘 - #16  (0) 2020.05.18
1일 N알고리즘 - #15  (0) 2020.05.18

댓글