🚩 문제 풀러 가기 📄 접근 방법 그리디 더보기 문제 해석 우리가 파는 레모네이트 가격은 $5입니다. 고객들은 무조건 레모네이드 한 개만 주문합니다. 고객들이 지불하는 돈은 $5, $10, $20입니다. 다만, 우리가 돈을 거슬러줘야할 때는 고객들이 지불했던 돈으로만 가능합니다. 모두에게 거슬러 줄 수 있다면 true를 반환하고, 한 명이라도 거슬러주지 못한다면 false를 반환합니다. 1. 거슬러줄 돈을 저장할 collect 빈 객체를 선언합니다. 2. 받은 돈이 $5일 때, $5가 없다면 1을 할당하고, 있다면 +1을 합니다. $10일 때, $5가 있다면 -1 합니다. 그리고 $10가 없다면 1을 할당하고, 있다면 +1을 합니다. $5가 없으면 거슬러줄 수 없으므로 false를 반환합니다. $20일 ..
🚩 문제 주소 455 - Assign Cookies 📄 접근 방법 그리디 더보기 문제가 무슨 뜻인지 해석하느라 한참 걸렸습니다. 문제가 무엇을 하라는 지 깨닫고는 쉽게 풀었습니다. 아이들 배열은 각각 최소한 쿠키를 이만큼 먹겠다는 숫자가 담겨 있습니다. 그래서 아이들 배열을 순회합니다. 아이가 쿠키를 먹을 수 있다면, 먹은 쿠키는 빼줘야 하므로 idx를 업데이트해서 idx 이후부터 쿠키 배열을 순회하게 합니다. 그리고 answer를 1 늘려줍니다. 반복이 종료되었다면 answer를 반환하면 끝입니다. 👨💻 나의 코드 var findContentChildren = function(g, s) { let answer = 0; const children = g.sort((a,b)=>a-b); const coo..
🚩 문제 주소 942. DI String Match 📄 접근 방법 그리디 더보기 1. 주어진 문자열의 길이 + 1 만큼의 0부터 증가하는 숫자 배열을 생성합니다. 2. 문자열을 순회하는데, 문자열[인덱스]가 I 라면, 만들어 놨던 숫자 배열에서 shift하여 정답배열에 넣어주고, 아니라면 pop하여 정답배열에 넣어줍니다. - I일 경우 최솟값을, D일 경우 최댓값을 넣어주면 된다고 생각했습니다. 3. 숫자 배열에 남은 하나의 원소를 정답배열에 넣어줍니다. 4. 정답배열을 반환합니다. 👨💻 나의 코드 var diStringMatch = function(s) { const perm = []; let i = 0; const nums = Array.from({length: s.length+1}, ()=>i++..