😁 빅데이터 문제 풀기 & Study/- BAEKJOON 문제

[10250번] ACM호텔 / python3 (낮은 층을 선호하는 아이러니한 세상)

또방91 2021. 11. 15. 11:48
728x90

문제 링크: https://www.acmicpc.net/problem/10250

 

10250번: ACM 호텔

프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수

www.acmicpc.net

방심하면 나처럼 여러차례 식을 고치고 멍하니 쳐다만보고 뭐가 틀렸나 시간 잡아먹는 문제...

아, 여담으로 문제에 사진이 삽입되어 있길래 실제로 ACM이란 호텔이 있나 찾아봤더니 없더라 ㅋㅋ

대신 ACM은 미국 컴퓨터 학회 줄임말이라는 걸 알수 있었음ㅋㅋ


❌ 1~2차시도 실패

1차시도: y가 나누어 떨어져서 0인 경우 빼먹음

1
2
3
4
5
6
7
8
9
t=int(input())
 
for _ in range(t):
    h,w,n=map(int,input().split())
    
    y = n % h
    x = (n//h)+1
    
    print(y*100+x)
cs

2차시도: y가 0일때 x도 다시설정하는 걸 빼먹음

1
2
3
4
5
6
7
8
9
10
11
12
13
t=int(input())
 
for _ in range(t):
    h,w,n=map(int,input().split())
    
    y = n % h
    x = (n//h)+1
    
    #나머지가 0이면 0층되어버리니, 조건식 쓰기
    if y==0:    
        y=h
    
    print(y*100+x)
cs

❓ 정답은 ??

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
# 우선순위: 호수번호 적은거 -> 낮은 층
# 1호가 쭉 다채워지고 그다음 2호가 쭉 채워짐
# 즉, n번째는 건물층수h로 나눈 나머지가 층수, 몫+1이 호수
 
#t : 테스트개수
#h : 건물 층수
#w : 한층 방 개수
#n : n번째 손님
#x : n번째 손님 호수
#y : n번째 손님 층수
#답출력 yxx나 yyxx형태
 
t=int(input())
 
for _ in range(t):
    h,w,n=map(int,input().split())
    
    y = n % h
    x = (n//h)+1
    
    #나머지가 0인 경우 문제 생김
    if y==0:    
        y=h
        x=x-1
    print(y*100+x)
    
    # 아래 방법으로도 답 출력 가능함
    # if x<10:      
    #     x='0'+str(x)
    # print(str(y)+x)
cs

💯 풀이 과정

1) 먼저 문제 파악하기

 # 우선순위: 호수번호 적은거 -> 낮은 층 (1호가 쭉 다채워지고 그다음 2호가 쭉 채워짐

 # 즉, n번째는 건물층수h로 나눈 나머지가 층수, 몫+1이 호수

2) 예외 경우 if조건으로 만져주기

 # 예를 들어 문제 예시처럼 6층 건물에서 12번째 손님은

 # 602호인데 위의 식대로 계산하면 나머지가 0이라서 0층.. 그리고 호수는 3으로 계산되어버림

3) 호수출력은 2자리로


😎오늘의 한줄평: 예외 조건 잘 살피자... 나머지가 0인 경우......

728x90