My Dream Being Visualized

Day 6: 백준 [8단계] 기본 수학 1 - 달팽이는 올라가고 싶다 본문

Algorithm

Day 6: 백준 [8단계] 기본 수학 1 - 달팽이는 올라가고 싶다

마틴킴 2021. 4. 12. 01:47
728x90

[결과]

메모리를 왜 이렇게 많이 썼지..? 가독성을 높이려다보니 변수 할당량이 많음.

[코드]

시간초과된 수학적인 접근없이 푼 문제
예제 문제들만 보고 잔머리 굴려서 푼 문제.. 오함마로 맞아야 함
필요없는 변수할당을 많이 하긴 했다. 하지만 메모리와는 상관없었음.. 머지

[과정]

1. 수학적인 접근없이 우선은 '풀 수 있는' 방식으로 풀었음

2. 당연히 시간초과가 걸렸음

3. 어떤 수학적인 계산을 통해 해야될까 고민

4. 나무 막대 길이에서 낮에 올라갈 수 있는 최소값을 뺀 값에서, 하루동안 올라갈 수 있는 최대값으로 나눈 뒤 올림한다. 

5. 그 다음 낮에 올라갈 수 있는 count와 위 값을 더한다.

 

[공부]

1. map(function, iterables) >> int를 앞에다가, iterables를 뒤에! (ref: www.w3schools.com/python/ref_func_map.asp)

 

Python map() Function

Python map() Function ❮ Built-in Functions Example Calculate the length of each word in the tuple: def myfunc(n):   return len(n) x = map(myfunc, ('apple', 'banana', 'cherry')) Try it Yourself » Definition and Usage The map() function executes a specif

www.w3schools.com

2. 올림은 math.ceil, 내림은 math.floor, 반올림은 round!

 

[문제]

www.acmicpc.net/problem/2869

 

2869번: 달팽이는 올라가고 싶다

첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)

www.acmicpc.net

 

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

처음으로, 대부분 동일하게 구현했더라! 굳! 

(변수를 너무 많이 할당해서 헷갈리는 건 함정)

 

[느낀점]

만약 알고리즘 문제를 풀지 않았다면, 내가 귀찮게 예제들을 들여다보고 공통점을 찾아내서 분석을 했을까?

그러지 않았을 확률이 높고, 계산이 무분별하게 오래 걸렸을 것이다.

나름의 고민을 한다고 생각했는데, 기본 수학 문제를 통해서 나의 안좋은 습관(알고리즘 대충 만들기)들을 발견하게 되었다.