-
문제
How to Solve ?
이 문제의 해답은 간단하게 이야기 해보자면 "특정 개수의 추의 총 무게 + 1" 이 측정 할 수 없는 무게라고 생각 할 수 있습니다.
1) 특정한 조건에 의해 루프가 끝나지 않으면
"특정 개수의 추의 총 무게 + 1"가 출력이 될 것이고,
2) 그렇지 않다면, 즉 특정 조건에 의해 루프가 끝나지 않으면
여기서 발생하는 문제는 "루프"를 끝낼 즉, 최소한의 무게를 가진 "측정 불가능한" 추의 무게를 구하기 위한 조건을 구해야 한다는 것입니다.
그리하여 루프가 끝나기 전에 깨지는 상황 중 규모가 작은 상황을 통해 "그" 조건을 찾아 보겠습니다.
예시 [ 1, 3, 9 ] => 예상 정답 : 2
왜 정답이 2일까요? 1이라는 가장 작은 추에서 +1을 더했는데 다음 추가 2보다 큰 3이 나왔기 떄문에 우리는 "2" 무게를 잴 수 가없습니다.
이를 통해, 만들어 낼 수 있는 코드는 다음과 같습니다.
let target = 1; for (let i = 0; i < nums.length; i++) { if (target < nums[i]) { break; } target += nums[i]; }
그리하여 최종 코드는 다음과 같이 나오게 됩니다.
function solution(nums) { nums = nums.sort((a, b) => a - b); console.log(nums); let target = 1; for (let i = 0; i < nums.length; i++) { if (target < nums[i]) { break; } target += nums[i]; } console.log(target); } let nums = [1, 1, 2, 3, 9]; console.log(solution(nums));
'PS > 백준' 카테고리의 다른 글
[ 백준 _ 2667 ] 단지번호 붙이기 (DFS) (0) 2021.06.04 [ 백준_2293 ] 동전 1 ( DP, by using JavaScript ) (0) 2021.06.03 [백준_14719] 빗물 ( Gold 5, by using JavaScript ) (0) 2021.06.01 [백준_14888] 연산자 끼워넣기 ( by using JavaScript ) (0) 2021.06.01 [백준_1697] 숨바꼭질 ( by using JavaScript ) (0) 2021.05.28 댓글