백준 10250번, divmod()

    문제

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

     

    10250번: ACM 호텔

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

    www.acmicpc.net

    내가 푼 코드

    num=int(input())
    for i in range(num):
    	h,w,n=map(int,input().split())
    	if n%h!=0:
    		floor=n//h+1
    		count=n%h
    	else:
    		floor=n//h
    		count=h
    	print(str(count)+str(floor).zfill(2))

    배웠던 zfill()함수를 사용하여 풀이해보았다.

     

    다른 사람이 푼 코드

    	for T in range(int(input())):
        h,w,n = map(int,input().split())
        a,b = divmod(n,h)
        if b == 0:
            b = h
            a-= 1
        print(100*b+a+1)

    divmod(a,b)라는 함수는 두 숫자를 인자로 전달받아 첫번째 인자를 두 번째 인자로 나눈 몫과 나머지를 튜플형태로 반환하는 함수이다.나는 몫과 나머지를 따로 구했지만 divmod 함수를 이용해 보는 것도 좋은 기능인 것 같다.

    그리고 for in range()에 int(input)을 넣어 코드를 간결화 하는 것도 연습해보자 

    '알고리즘 공부' 카테고리의 다른 글

    백준 1065번  (0) 2022.12.07
    백준 4673번, if문 not in (미해결)  (0) 2022.12.06
    백준 1712번  (0) 2022.11.30
    백준 10757번, 파이썬의 큰 정수 입력받기  (0) 2022.11.30
    백준 1110번  (0) 2022.11.29

    댓글