일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- superstarjypnation
- vercel
- Next.js
- 생활코딩
- React
- useState
- CSS
- 큐
- 스택
- javascript
- html
- 자바스크립트
- web
- UI
- 회고
- level1
- mysemester
- Til
- 프로토타입
- 카카오
- 해시테이블
- 프로그래머스
- 운영체제
- 자료구조
- 코드스테이츠
- UX
- redux
- REST_API
- 백준
- 30daysdowoonchallenge
- Today
- Total
데굴데굴
[파이썬] 10250번: ACM 호텔 본문
10250번: ACM 호텔
프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수
www.acmicpc.net
t = int(input())
for i in range(t):
h, w, n = map(int, input().split())
y = n % h
x = n // h + 1
if h > n:
y = n
x = 1
elif y == 0:
y = h
x = n // h
if x < 10:
print("{}0{}".format(y, x))
else:
print("{}{}".format(y, x))
글 쓰다가 날아가서 조금 화가 남..^^ 로그인이 풀린 걸 왜 몰랐을까...?
문제에 제시된 h = 6, w = 12, n = 10으로 y와 x를 구하는 과정을 기록해보았다.
글로는 설명이 조금 어려워서 그림으로 그려봤다. 글로 알기 쉽게 설명 잘 해주시는 다른 블로거들 진짜 존경합니당...

x 구하기 (부연설명)
- n을 h로 나눴을 때 나머지가 있는 경우에는 몫 x에 1을 더해줘야 한다. 나머지가 있다는 건 줄을 몇 개 이미 지나고 다음 줄을 지나는 중이라는 것이기 때문에 이를 고려하여 1을 더해줘야 한다.
예시와 같은 경우를 제외하고 1) 손님의 순서(n)가 건물의 높이(h)보다 작을 경우, 즉 n < h일 경우와 2) n % h이 0일 경우를 따로 고려해주었다.
1)의 경우, n이 h보다 작기 때문에 한 줄을 채 벗어나지 않은 상태가 된다. 따라서 층수 y는 n이 되고 첫 번째 줄에만 머무르기 때문에 호수는 y01의 형태가 된다. 따라서 x는 1로 고정된다.
2)의 경우, 나머지가 0이라는 것은 건물의 꼭대기 층에 배정됐음을 뜻하기 때문에 y는 곧 h가 된다. 또한 나머지가 없기 때문에 몫도 1을 더한 것이 아닌 그 자체로 써야 한다.
마지막 호수 출력 부분에서는 x가 10보다 작을 경우를 따로 둬서 y와 x 사이에 0을 입력하는 코드를 따로 작성해보았다.
'algorithm > 백준' 카테고리의 다른 글
[파이썬] 2581번: 소수 (0) | 2022.04.07 |
---|---|
[파이썬] 1978번: 소수 찾기 (0) | 2022.04.04 |
[파이썬] 1193번: 분수찾기 (0) | 2022.03.20 |
[파이썬] 1316번: 그룹 단어 체커 (0) | 2022.03.19 |
[파이썬] 2941번: 크로아티아 알파벳 (0) | 2022.03.19 |