class Solution {
fun solution(n: Int, m: Int, section: IntArray): Int {
var answer: Int = 1
var startWall = section[0]
for(wall in section) {
if(startWall + m > wall)
continue
startWall = wall
answer++
}
return answer
}
}
- 오래 걸렸던 이유
- 벽을 칠하는 경우의 수를 전부 조합으로 만들어서 완전탐색을 하려고 했다.(문제를 너무 복잡하게 생각했다.)
- n이 100,000이기 때문에 조합으로는 시간초과나는 케이스가 많았다.(정답 또는 시간초과만 발생)
- n이 크기 때문에 조합이 아닌 방법으로 접근해야 했다.
- 포인트
1. section에 있는 벽을 첫 번째 칠하는 벽으로 선택한다.
2. 해당 벽칠의 범위에서 필요한 다른 벽도 칠해졌는지 체크한다.
3. 칠해지지 않은 가장 가까운 벽으로 이동해 1,2번을 반복한다.
'TLI > 코드카타' 카테고리의 다른 글
2024.05.27 내일배움캠프 Android 4기를 시작하며 (0) | 2024.05.27 |
---|---|
2024.05.24 TIL 코트카타 61번(로또의 최고 순위와 최저 순위) (0) | 2024.05.24 |
2024.05.23 TIL 코트카타 60번(기사단원의 무기) (0) | 2024.05.23 |
2024.05.21 TIL 코트카타 58번(소수 만들기) (0) | 2024.05.21 |
2024.05.20 TIL 코트카타 57번(모의고사) (0) | 2024.05.20 |