From 03793a177eefd816a88d57dafe3144559999b9e3 Mon Sep 17 00:00:00 2001 From: Yeonseo-Jo Date: Fri, 8 Dec 2023 03:41:27 +0900 Subject: [PATCH 1/5] =?UTF-8?q?level=202=20-=20=EC=A3=BC=EC=8B=9D=20?= =?UTF-8?q?=EA=B0=80=EA=B2=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...74\354\213\235\352\260\200\352\262\251.js" | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 "\354\227\260\354\204\234/week9/\354\243\274\354\213\235\352\260\200\352\262\251.js" diff --git "a/\354\227\260\354\204\234/week9/\354\243\274\354\213\235\352\260\200\352\262\251.js" "b/\354\227\260\354\204\234/week9/\354\243\274\354\213\235\352\260\200\352\262\251.js" new file mode 100644 index 0000000..7a67f89 --- /dev/null +++ "b/\354\227\260\354\204\234/week9/\354\243\274\354\213\235\352\260\200\352\262\251.js" @@ -0,0 +1,21 @@ +function solution(prices) { + let answer = []; + + let idx = 0; + + while (idx < prices.length) { + let time = 0; + for (let i = idx + 1; i < prices.length; i++) { + if (prices[idx] > prices[i]) { + time++; + break; + } else { + time++; + } + } + answer.push(time); + idx++; + } + + return answer; +} From ef8e37522a4c6b9ad115c84bc911f7d00746d5bb Mon Sep 17 00:00:00 2001 From: Yeonseo-Jo Date: Fri, 8 Dec 2023 03:42:33 +0900 Subject: [PATCH 2/5] =?UTF-8?q?level=202=20-=20=ED=81=B0=20=EC=88=98=20?= =?UTF-8?q?=EB=A7=8C=EB=93=A4=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0\230\353\247\214\353\223\244\352\270\260.js" | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 "\354\227\260\354\204\234/week9/\355\201\260\354\210\230\353\247\214\353\223\244\352\270\260.js" diff --git "a/\354\227\260\354\204\234/week9/\355\201\260\354\210\230\353\247\214\353\223\244\352\270\260.js" "b/\354\227\260\354\204\234/week9/\355\201\260\354\210\230\353\247\214\353\223\244\352\270\260.js" new file mode 100644 index 0000000..9e85f39 --- /dev/null +++ "b/\354\227\260\354\204\234/week9/\355\201\260\354\210\230\353\247\214\353\223\244\352\270\260.js" @@ -0,0 +1,16 @@ +function solution(number, k) { + let stack = []; + for (let i = 0; i < number.length; i++) { + let value = number[i]; + //마지막 숫자와 현재 숫자를 비교하며 현재 숫자가 더 크면 해당 숫자를 pop + while (k > 0 && stack[stack.length - 1] < value) { + // 현재 숫자보다 큰 수가 나올때까지 최대 k번 반복 + stack.pop(); + k--; + } + stack.push(value); + } + // 모든 숫자를 비교한 후 k가 0보다 크면 남은 k만큼 뒤에서 제거 + stack.splice(stack.length - k, k); + return stack.join(""); +} From 1de16a217e23104263a4230ca86c97eb67738c88 Mon Sep 17 00:00:00 2001 From: Yeonseo-Jo Date: Fri, 8 Dec 2023 21:53:27 +0900 Subject: [PATCH 3/5] =?UTF-8?q?level=202=20-=20=EB=8B=A4=EB=A6=AC=EB=A5=BC?= =?UTF-8?q?=20=EC=A7=80=EB=82=98=EB=8A=94=20=ED=8A=B8=EB=9F=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 0 -> 6148 bytes ...30\353\212\224\355\212\270\353\237\255.js" | 34 ++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 .DS_Store create mode 100644 "\354\227\260\354\204\234/week9/\353\213\244\353\246\254\353\245\274\354\247\200\353\202\230\353\212\224\355\212\270\353\237\255.js" diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..b93206e621f7cf83fa8911b45a66427aa42f3d9d GIT binary patch literal 6148 zcmeHK&ubGw6n?XfCQB*gpwNTDq8^KlsT4{ntlRX^LoZ!v4^?8;4Z679Df!VHLSWDK z=AWXMf)@)d#ecxR!#_Z<-L<8M@e=gy^V%-b_+(bW9O*HJ1XMDf>fdcd`x z%G4m7Pp9XPHq&Vi1y?y|$0zr%a6Xne-%supIpV=}oM_ZPFu&(GI!KfLpwajyoSDk4 z+tsRDovpqM-^x)q=nRJapwrvq-g7C_=(633c9QO>UB9y~vq2}xx;>SU#9dHc>?T<( zM}Zt>abM+zI^eoBw_TqfkDJSl1#hXjGFkA(D^0YYE-gF#ntWhyL3O3@0Btn zuo9Hb8N7reG@LVx_b}{bsm$J>&s^u+FKO@r{(|0LzkL2t)XCx1H_buUnpMCmU=_Hb z0%oVG&EAl2X;uNN!2hEF?++ddqi-9n1e6T6vI_iB1ug(bpp-!X literal 0 HcmV?d00001 diff --git "a/\354\227\260\354\204\234/week9/\353\213\244\353\246\254\353\245\274\354\247\200\353\202\230\353\212\224\355\212\270\353\237\255.js" "b/\354\227\260\354\204\234/week9/\353\213\244\353\246\254\353\245\274\354\247\200\353\202\230\353\212\224\355\212\270\353\237\255.js" new file mode 100644 index 0000000..0a16fdf --- /dev/null +++ "b/\354\227\260\354\204\234/week9/\353\213\244\353\246\254\353\245\274\354\247\200\353\202\230\353\212\224\355\212\270\353\237\255.js" @@ -0,0 +1,34 @@ +function solution(bridge_length, weight, truck_weights) { + let answer = 0; + + // 다리 위에 올라간 트럭 배열 + let bridge = new Array(bridge_length).fill(0); + // 현재 시점 다리에 걸린 하중 + let bridge_sum = 0; + + // 1초를 증가시키고, 맨 처음 트럭을 다리에 올린다. + answer++; + bridge.shift(); + bridge_sum += truck_weights[0]; + bridge.push(truck_weights.shift()); + + // 대기 트럭 배열이 남아있거나 다리 위에 올라간 트럭 배열이 남아있는 동안, + while (bridge_sum > 0) { + // 우선 시간이 1초 지났을 때, + answer++; + + // 큐의 맨 앞을 꺼내고, + bridge_sum -= bridge.shift(); + + // 만약 현재 시점 다리 하중에 다음 트럭의 무게를 더해도 다리가 버틸 수 있다면? + if (truck_weights.length > 0 && bridge_sum + truck_weights[0] <= weight) { + // 다음 트럭을 다리 배열에 넣는다. + bridge_sum += truck_weights[0]; + bridge.push(truck_weights.shift()); + } else { + bridge.push(0); + } + } + + return answer; +} From 141654bc97c15ed2e4319a021d0c9c862dac45c0 Mon Sep 17 00:00:00 2001 From: Yeonseo-Jo Date: Sun, 10 Dec 2023 01:27:52 +0900 Subject: [PATCH 4/5] =?UTF-8?q?level=202=20-=20=EC=B9=B4=ED=8E=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../week9/\354\271\264\355\216\253.js" | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 "\354\227\260\354\204\234/week9/\354\271\264\355\216\253.js" diff --git "a/\354\227\260\354\204\234/week9/\354\271\264\355\216\253.js" "b/\354\227\260\354\204\234/week9/\354\271\264\355\216\253.js" new file mode 100644 index 0000000..93f5d7b --- /dev/null +++ "b/\354\227\260\354\204\234/week9/\354\271\264\355\216\253.js" @@ -0,0 +1,12 @@ +function solution(brown, yellow) { + let carpet = brown + yellow; + let w, h; + + for (let h = 3; h < brown; h++) { + if (carpet % h === 0) { + w = carpet / h; + + if ((w - 2) * (h - 2) === yellow) return [w, h]; + } + } +} From ceed12b8aa82d1c2d90a29a330a978d3c73ee377 Mon Sep 17 00:00:00 2001 From: Yeonseo-Jo Date: Sun, 10 Dec 2023 23:28:49 +0900 Subject: [PATCH 5/5] =?UTF-8?q?level=202=20-=20=ED=95=A0=EC=9D=B8=20?= =?UTF-8?q?=ED=96=89=EC=82=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...40\354\235\270\355\226\211\354\202\254.js" | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 "\354\227\260\354\204\234/week9/\355\225\240\354\235\270\355\226\211\354\202\254.js" diff --git "a/\354\227\260\354\204\234/week9/\355\225\240\354\235\270\355\226\211\354\202\254.js" "b/\354\227\260\354\204\234/week9/\355\225\240\354\235\270\355\226\211\354\202\254.js" new file mode 100644 index 0000000..69868de --- /dev/null +++ "b/\354\227\260\354\204\234/week9/\355\225\240\354\235\270\355\226\211\354\202\254.js" @@ -0,0 +1,21 @@ +function solution(want, number, discount) { + var answer = 0; + + const isMatch = (arr) => { + // 할인 품목과 원하는 제품이 일치하는지 확인하는 함수 + var map = new Map(); // 매번 map을 초기화 해준다. + arr.forEach((v) => map.set(v, (map.get(v) || 0) + 1)); // 할인 품목들을 map에 셋팅한다. + for (let i = 0; i < want.length; i++) { + if (map.get(want[i]) !== number[i]) return false; + } // 원하는 품목의 수량과 할인 품목이 일치하지 않으면 false + return true; // 일치하면 true를 리턴한다 + }; + + for (let j = 0; j <= discount.length - 10; j++) { + var arr = discount.slice(j, j + 10); // 10일동안 할인이 되므로(회원 자격 부여) 10개씩 배열을 잘라준다. + if (isMatch(arr)) { + answer++; + } + } + return answer; +}