본문 바로가기
[ 알고리즘 ]/오답노트

[ BOJ 오답노트 ] 2869 파이썬 : 달팽이는 올라가고 싶다

by 불주먹고양이 2022. 1. 28.

2022 01 28

 

1. 틀린 기록

 

 

 

2. 원인 분석

- 일단 시간 제한이 0.15초인 것을 보고, 단순히 while문으로 값을 하나씩 증가해가면서 구하는 문제가 절대 아닐 것이라고 생각했다.

- 그러면서 계속해서 식을 만드려고 노력했는데 도저히 일반화가 안돼서... 여러가지 경우를 생각해보았는데 내가 가장 생각하지 못했던 부분은 바로 몫과 나머지에만 집착했던 것이었다.

- '//'와 '%' 연산만을 가지고 식을 만드려다 보니까 계속 생각이 안 났던 것 같다.

 

 

 

3. 해결

- 높이에서 올라가는 높이를 빼주고 그 나머지 값에 대해서 올라갔다가 내려가는 값으로 나누어서 얼만큼 올라가야 하는지 구했다.

- 그 값이 만약에 4.1번이 나온다면 네번을 올라갔다 내려갔다 한 후에 올라가는 작업을 했다는 것을 의미한다. 그렇기 때문에 ceil 함수로 올림 해주어서 5번으로 만들어주고, 마지막으로 올라가기만 하는 연산의 횟수인 1을 더해준다.

 

- 경우를 굳이 나눠서 // 연산자만을 고집하지 말고, / 연산자로 일반화 했어야 했다.

 

 

 

4. 배운 점

- 몫 연산자와 나머지 연산자는 매우 편리하다고 생각했었다. 물론 그렇지 않은 것은 아니지만, 그 연산자로만 연산을 하려다 보니 더 많은 경우를 나눠서 생각했어야 했다.

- 나머지 연산자를 더 잘 이용해보자.