My Dream Being Visualized

Day 7: 백준 [8단계] 기본 수학 1 - ACM 호텔 본문

Programming/Algorithm

Day 7: 백준 [8단계] 기본 수학 1 - ACM 호텔

마틴킴 2021. 4. 12. 23:15
728x90

[결과]

 예외처리를 하지 않음 // 예외처리 함 >> 예외처리까지 한번에 할 수 있는 코드가 있을 것 같은데.... sys.stdin.readline() 쓰니까 68ms 까지 나왔음! 저거 쓰는 습관을 들여야겠음!!! 

 

[코드]

완벽하게 나누어져서 나머지가 0일 때 floor가 0으로 나옴!
나머지가 0일 때 예외처리를 했음

 

[과정]

1. H에 따라 N이 몇호에 머무를지 알기 때문에 H를 N으로 나누었을 때 몫과 나머지를 활용하여 구한다. W는 굳이 필요하지 않아보이는데, 예외처리를 미리 해놓으라는 뜻으로 써야하는건가?

>> 결국 안 썼음.. 문제에서 활용하라고 했으면?!

 

[공부]

1. divmod(dividend(=The number you want to divide), divisor(=The number you want to divide with)) (ref:www.w3schools.com/python/ref_func_divmod.asp)

 

Python divmod() Function

Python divmod() Function ❮ Built-in Functions Example Display the quotient and the remainder of 5 divided by 2: x = divmod(5, 2) Try it Yourself » Definition and Usage The divmod() function returns a tuple containing the quotient  and the remainder whe

www.w3schools.com

2. import sys

   input = sys.stdin.readline()

[문제]

www.acmicpc.net/problem/10250

 

10250번: ACM 호텔

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

www.acmicpc.net

 

[선배 개발자들의 코드 분석]

sys.stdin.readline() 함수를 써서 더 빨랐음 // 변수 할당을 하지 않고 print() 안에 다 넣음 >> 나중에 문제 유형이 조금만 변한다면 고치기 쉬울까? 다시 코드를 들여다보느라 시간을 보내지 않을까.. 변수를 readable하게 바꿔서 할당해야 하지 않을까? // n-1과 h+1처럼 수학적인 계산을 통해 if문을 덜 써서 빨랐다!!!

 

[느낀점]

1. 예외처리 대신 수학적인 방식으로 풀 수 있다는 게 가능했다! 안되는 건 안되는 줄 알았는데....

(막상 현업(웹 크롤링)에서는 예외처리시 if를 쓸 수 밖에 없긴 하더라....)