728x90
느낀바
처음엔 만약 3번째 위치 빌딩의 높이가 5이면
building[2][]
= 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 ...
이런식으로 해서 하려고 했는데
굉장히 무식한 방법인 것이었다. 조망권이 있는다라는 것은
i번째 빌딩의 높이가 250 이면
i-2,i-1,i+1,i+2 번째 빌딩보다 얼마나 "최소한" 높은지를 계산하면 되는 것이었다...
만약 i번째빌딩이 위 4개 빌딩보다 높다면 자연스럽게 i-2,i-1,i+1,i+2 번째 빌딩은 높이가 어떻든간에 i번째 빌딩보다
낮은 것이므로 계산할 필요도 없다. 위 코드엔 이 부분은 포함되지 않았지만
실행시간을 자연스레 더 줄일 수 있겠다 싶다. 아마 스트레스 테스트가 있는 문제라면 이것도 생각해야할 듯 싶다.
'프로그래밍 > programmers&bj' 카테고리의 다른 글
[C++][알고리즘] 프로그래머스:: 타일장식물 (0) | 2020.03.15 |
---|---|
[C++][SWEA] 1204. 최빈수 구하기 (0) | 2020.03.14 |
[C++][SWEA] 1247. 최적 경로 (0) | 2020.03.14 |
[C++][알고리즘] 백준 1157번 단어 공부 (0) | 2020.03.12 |
[C++][알고리즘] 백준 1252번 이진수 덧셈 (0) | 2020.03.11 |