반응형
▷ 문제 : Exercise 1 - FloodDepth (Medium)
▷ 해결 날짜 : 2022.06.28
▷ 소요 시간 : 1시간
▷ 풀이 과정 :
2015 Contest 문제 중에 하나인 FloodDepth 문제이다.
문제 콘셉트는 비가 많이 내린 뒤 최대 수심을 찾아내라는 콘셉트이다.
별다른 방법이 떠오르지 않아 그냥 하나씩 찾아가면서 값을 저장해두는 방향으로 잡고 풀어보았다.
가장 높은 곳의 기준이 되는 (high) 변수와 가장 낮은 곳의 기준이 되는 (row)를 선언해두고, 두 변수를 기준으로 그때그때 최대 수심을 저장해 값을 반환해주는 로직이다.
▷ 구현
function solution(A) {
// impossible
if (A.length <= 2) return 0;
let [high, row, max, depth] = [0, 0, 0, 0];
for (let i = 1; i < A.length; i++) {
if (A[i] > A[high]) {
depth = A[high] - A[row];
high = row = i;
} else if (A[i] > A[row]) {
depth = A[i] - A[row];
} else if (A[i] < A[row]) {
row = i;
}
if (max < depth) max = depth;
}
return max;
}
▷ 복기 :
어떤 식으로 풀어야 하는지에 대해 고민이 풀리지 않아 생각보다 어렵게 느껴진 문제였다.
구현한 코드를 보면 그렇게까지 어려웠던 문제는 아녔을 텐데, 풀고 나서 다른 방법으로는 풀 수 없을까 하다가 관뒀다.
반응형
댓글