문제 링크 : https://www.acmicpc.net/problem/10250
t = int(input())
for i in range(t):
h, w, n = map(int, input().split()) #t번만큼 입력 받고 출력 수행
ho = n // h + 1 #호수 계산
ch = n % h #층 계산
#꼭대기 층 일 경우 (즉 높이로 나누어 떨어질 경우)
if n % h == 0:
ho = n//h
ch = h
print((ch*100) + ho)
t번 만큼 입력받는 부분, 꼭대기 층에 배정될 경우를 제외한 일반적인 경우는 구현했으나
n % h 로 나누어 떨어지는 경우 0이 나와버림 -> 따라서 배정된 방이 꼭대기 층 일 경우 호수와 층을 다르게 작성해야한다.
#꼭대기 층 일 경우 (즉 높이로 나누어 떨어질 경우)
if n % h == 0:
ho = n//h
ch = h
print((ch*100) + ho)
위 부분을 추가해 제출했더니 통과되었다.
알고리즘 문제를 풀 때는 일반적인 상황을 먼저 가정하고 구현 한 다음, 0 또는 1이 되는 특수한 상황까지 고려해서 코드를 짜야한다는 깨달음을 얻었다. 그리고 입력받는 부분만 O(n)이고 나머지는 기본 연산이기 때문에 런타임에러도 없었고 문제 풀이 방향성을 잡는데에는 가장 괜찮았던 문제였다.
캐나다에서 codesignal로 문제 풀 때는 테스트 케이스도 충분히 주어지고 UI 도 예쁘고 게임같은 느낌이라 공부할 맛이 났는데... 백준 처음 풀어보니까 어렵기도 하고 자신감이 뚝뚝 떨어지는 경험을 하게 되었다.... 물론 백준이 쉽게 다른 사람들 코드를 못 보게 되어있어서 공부하기엔 훨씬 좋은 환경이긴 하다만 ㅠㅠ
'알고리즘' 카테고리의 다른 글
자료구조 ) LinkedList (연결리스트)의 기본 구성 (0) | 2023.05.25 |
---|---|
백준 ) 1110 - 더하기 사이클 Python (0) | 2023.05.24 |
백준) 18258 Python (큐 Queue) (0) | 2023.05.24 |
자료구조 - Stack, Queue | 백준 10828 , 10773 Python (0) | 2023.05.24 |
시간복잡도 BigO (0) | 2023.05.23 |