Home [Python] 백준 10250번 : ACM 호텔
Post
Cancel

[Python] 백준 10250번 : ACM 호텔

Problem

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

Solution

code1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
t = int(input())

for i in range(t):
    h,w,n = map(int, input().split())

    count = 0
    for i in range(1,w+1):
        for j in range(1,h+1):
            count+=1
            if count==n:
                break
        if count==n:
            break
    print("%d%02d" %(j,i))

1번은 101호부터 차례대로 사람들을 배치해 나가면서 n번째 방이 되면 결과를 출력하는 방식이다.

code2

1
2
3
4
5
6
7
t = int(input())

for i in range(t):
    h, w, n = map(int, input().split())
    r = h if n%h==0 else n%h # 층수 구하기(나머지가 0일때는 4로)
    b = (n-r)//h + 1 # 호수 구하기
    print("%d%02d" %(r, b))

2번의 경우 몫과 나머지를 이용하여 풀었는데 전체 층수인 h로 나누었을때의 나머지를 이용해 해당 층수를 구했고 몫을 통해 정문으로부터의 거리인 호수를 구했다.

| 3 | 6 | 9 | 12 | |—|—|—|—-| | 2 | 5 | 8 | 11 | | 1 | 4 | 7 | 10 | 위의 예시를 보면 h와 w가 각각 3, 4인 상황에서 n=6의 층수와 호수를 구하는 방법은 h인 3으로 나누는 것이다. 그렇게 되면 r=3, b=2가 나오므로 302호가 나오게 된다.

This post is licensed under CC BY 4.0 by the author.

[Python] 백준 1463번 : 1로 만들기

Dynamic Programming(동적계획법)