1주차 과제 4.ACM 호텔 BEST 풀이

베스트 풀이 링크

베스트 풀이 코드- hongcheol님

import sys
test_case = int(sys.stdin.readline())
for _ in range(test_case):
    h,w,n = map(int, sys.stdin.readline().split())
    floor = n%h
    room_num = 0
    if floor == 0:
        floor += h
    if n % h == 0:
        room_num = n//h
    else:
        room_num = n//h + 1
    print(floor*100 + room_num)

베스트 풀이 선정 이유

acm hotel 문제를 푸신 분들 모두가 %와 // 연산자를 사용하여 방의 층수와 호수를 구하는 방식으로 문제를 해결하셨습니다.
이 풀이는 예제를 입력받고 출력하는 부분이 깔끔하다고 생각되고 이 문제의 핵심인 방의 층수와 호수를 구하는 부분 또한 읽기 편하다고 생각되어서 베스트 문제로 선정했습니다.

추가 참고 코드

추가로 저 또한 이 문제를 풀어보았는데 제가 작성한 코드도 다른 분들이 참고해보시면 좋을 것 같아서 올려봅니다.

import sys
t = int(input())
for _ in range(t):
    h,w,n = map(int,sys.stdin.readline().rstrip().split())
    row = (n-1)//h+1
    height = (n-1)%h+1
    print(height*100+row);

느낀점

알고리즘 문제를 풀면서 %와 // 연산자를 이용하는 경우가 자주 보입니다. 이처럼 %연산자는 사용하는 경우가 많다는 것을 다시 깨닫게 되었습니다. 또한 내가 작성한 알고리즘 코드가 맞았다 할지라도 가독성이나 코드의 효율성 부분에 있어 조금 더 생각해보면 좋겠다고 느꼈습니다.

좋은 웹페이지 즐겨찾기