Algorithm | Code Kata #10

Wook·2021년 12월 10일
0

Algorithm | Code Kata

목록 보기
10/21


height 배열 안에는 배열 이름처럼 그래프의 높이가 각각 주어져있다. 위와 같은 그래프에서 물의 면적은 (두 축 중 짧은 축의 높이* 두 축 사이의 거리)가 된다. 즉, 구한 값 중에서 가장 큰 값을 return하면 문제를 해결할 수 있는 것이다. 코드 상단에 finalReturn 즉 마지막에 return해줘야할 값을 0으로 초기화하여 Greedy Algorithm을 통해 최종값을 추출하기로 하였다.


📲 My Code

let finalMax=0; // 최종 리턴값
for (let i=0; i<height.length; i++){ // 첫번째 기준 높이 i
  for (let j=i+1; j<height.length; j++){ // 두번째 기준 높이 j
    if(finalMax<(Math.min(height[i],height[j])*(j-i))){ // 물의 면적이 finalMax보다 클 경우
      finalMax=Math.min(height[i],height[j])*(j-i)      // finalMax 값을 물의 면적 값으로 대체
    }
  }
}
return finalMax
}

느낀 점

문제는 약간 거창해보일 수도 있지만, 접근이 상당히 간단한 문제였다. 접근은 다 했으니 구현만 하면 되는데 아직은 Greedy Algorithm을 구현할 정도의 수준이라 그저 직관적으로 이중 반복문을 써서 답을 구할 수 있었다. 더 많은 알고리즘 방법을 습득해서 다양한 방법들로 다시 풀어봐야겠다는 생각을 했고, 더 많은 학습이 필요할 것 같다고 생각한다.

profile
지속적으로 성장하고 발전하는 진취적인 태도를 가진 개발자의 삶을 추구합니다.

0개의 댓글