From de6ef2794146ad15d72ad9813a015606234b988a Mon Sep 17 00:00:00 2001 From: Hannah Ahn Date: Tue, 28 Mar 2023 00:13:37 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[PGS]=20=ED=82=A4=ED=8C=A8=EB=93=9C=20?= =?UTF-8?q?=EB=88=84=EB=A5=B4=EA=B8=B0=20/=20Lv1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://school.programmers.co.kr/learn/courses/30/lessons/67256 --- ...4 \353\210\204\353\245\264\352\270\260.js" | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 "[Lily]4w/[PGS]\355\202\244\355\214\250\353\223\234 \353\210\204\353\245\264\352\270\260.js" diff --git "a/[Lily]4w/[PGS]\355\202\244\355\214\250\353\223\234 \353\210\204\353\245\264\352\270\260.js" "b/[Lily]4w/[PGS]\355\202\244\355\214\250\353\223\234 \353\210\204\353\245\264\352\270\260.js" new file mode 100644 index 0000000..c63a641 --- /dev/null +++ "b/[Lily]4w/[PGS]\355\202\244\355\214\250\353\223\234 \353\210\204\353\245\264\352\270\260.js" @@ -0,0 +1,40 @@ +solution([1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5], 'right') +// right +// "LRLLLRLLRRL" + +function solution(numbers, hand) { + var answer = '' + const left = [1, 4, 7] + const right = [3, 6, 9] + let leftPosition = 0 + let rightPosition = 0 + + numbers.forEach(number => { + if (left.includes(number)) { + leftPosition = number + answer += 'L' + return + } + + if (right.includes(number)) { + rightPosition = number + answer += 'R' + return + } + + const diffLeft = Math.abs(number - leftPosition) + const diffRight = Math.abs(number - rightPosition) + + if (diffLeft < diffRight) { + answer += 'L' + leftPosition = number + } else if (diffLeft > diffRight) { + answer += 'R' + rightPosition = number + } else { + answer += hand === 'right' ? 'R' : 'L' + } + }) + + return answer +} \ No newline at end of file From 422bcf57e3ae30e63ceebde91bc9dc27b51ecd29 Mon Sep 17 00:00:00 2001 From: Hannah Ahn Date: Sun, 30 Apr 2023 20:47:33 +0900 Subject: [PATCH 2/2] =?UTF-8?q?[PGS]=20=ED=81=AC=EA=B8=B0=EA=B0=80=20?= =?UTF-8?q?=EC=9E=91=EC=9D=80=20=EB=B6=80=EB=B6=84=EB=AC=B8=EC=9E=90?= =?UTF-8?q?=EC=97=B4/Lv.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - https://school.programmers.co.kr/learn/courses/30/lessons/147355 [PGS] 숫자 문자열과 영단어/Lv.1 - https://school.programmers.co.kr/learn/courses/30/lessons/81301 [PGS] 짝지어 제어하기/Lv.2 - https://school.programmers.co.kr/learn/courses/30/lessons/12973 --- ...4_\354\230\201\353\213\250\354\226\264.js" | 71 +++++++++++++++++++ ...34\352\261\260\355\225\230\352\270\260.js" | 26 +++++++ ...4_\353\254\270\354\236\220\354\227\264.js" | 21 ++++++ 3 files changed, 118 insertions(+) create mode 100644 "[Lily]4-4w/[PGS]\354\210\253\354\236\220_\353\254\270\354\236\220\354\227\264\352\263\274_\354\230\201\353\213\250\354\226\264.js" create mode 100644 "[Lily]4-4w/[PGS]\354\247\235\354\247\200\354\226\264_\354\240\234\352\261\260\355\225\230\352\270\260.js" create mode 100644 "[Lily]4-4w/[PGS]\355\201\254\352\270\260\352\260\200_\354\236\221\354\235\200_\353\266\200\353\266\204_\353\254\270\354\236\220\354\227\264.js" diff --git "a/[Lily]4-4w/[PGS]\354\210\253\354\236\220_\353\254\270\354\236\220\354\227\264\352\263\274_\354\230\201\353\213\250\354\226\264.js" "b/[Lily]4-4w/[PGS]\354\210\253\354\236\220_\353\254\270\354\236\220\354\227\264\352\263\274_\354\230\201\353\213\250\354\226\264.js" new file mode 100644 index 0000000..255a4ee --- /dev/null +++ "b/[Lily]4-4w/[PGS]\354\210\253\354\236\220_\353\254\270\354\236\220\354\227\264\352\263\274_\354\230\201\353\213\250\354\226\264.js" @@ -0,0 +1,71 @@ +function solution(s) { + const words = [ + 'zero', + 'one', + 'two', + 'three', + 'four', + 'five', + 'six', + 'seven', + 'eight', + 'nine' + ] + + const str = s.split('') + let word = '' + let answer = '' + + for (let i = 0; i < str.length; i++) { + if (isNaN(str[i])) { + word += str[i] + } else { + answer += str[i] + continue + } + + for (let j = 0; j < words.length; j++) { + if (word === words[j]) { + answer += j + word = '' + break + } + } + } + + return Number(answer) +} + +solution('one4seveneight') + +// 1. 숫자가 아니어야 한다. +// 2. 숫자이면 탐색하지 않고 바로 answer에 넣는다. + +// "one4seveneight" 1478 +// "23four5six7" 234567 +// "2three45sixseven" 234567 +// "123" 123 + +function solution(s) { + let numbers = [ + 'zero', + 'one', + 'two', + 'three', + 'four', + 'five', + 'six', + 'seven', + 'eight', + 'nine' + ] + + let answer = s + + for (let i = 0; i < numbers.length; i++) { + let arr = answer.split(numbers[i]) + answer = arr.join(i) + } + + return Number(answer) +} diff --git "a/[Lily]4-4w/[PGS]\354\247\235\354\247\200\354\226\264_\354\240\234\352\261\260\355\225\230\352\270\260.js" "b/[Lily]4-4w/[PGS]\354\247\235\354\247\200\354\226\264_\354\240\234\352\261\260\355\225\230\352\270\260.js" new file mode 100644 index 0000000..92e4652 --- /dev/null +++ "b/[Lily]4-4w/[PGS]\354\247\235\354\247\200\354\226\264_\354\240\234\352\261\260\355\225\230\352\270\260.js" @@ -0,0 +1,26 @@ +function solution(s) { + const stack = [0] + + for (let i = 0; i < s.length; i++) { + if (stack[stack.length - 1] === s[i]) { + stack.pop() + continue + } + + stack.push(s[i]) + } + + return stack.length === 1 ? 1 : 0 +} + +solution('baabaa') +// return 1 + +// 1. 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾는다. +// 2. 그 둘을 제거한 뒤, 앞 뒤로 문자열을 이어 붙인다. +// 3. 위 과정을 반복한다. +// 4. 반복 문자열을 모두 제거했다면 짝지어 제거하기가 종료된다. +// 5. 문자열이 모두 제거되면 1, 아니면 0을 리턴한다. + +// 문자열이 엄청 작거나 엄청 크거나에 대해서 생각해봐야 한다. +// 문자열이 아예 없을 수도 있다? diff --git "a/[Lily]4-4w/[PGS]\355\201\254\352\270\260\352\260\200_\354\236\221\354\235\200_\353\266\200\353\266\204_\353\254\270\354\236\220\354\227\264.js" "b/[Lily]4-4w/[PGS]\355\201\254\352\270\260\352\260\200_\354\236\221\354\235\200_\353\266\200\353\266\204_\353\254\270\354\236\220\354\227\264.js" new file mode 100644 index 0000000..cd075a6 --- /dev/null +++ "b/[Lily]4-4w/[PGS]\355\201\254\352\270\260\352\260\200_\354\236\221\354\235\200_\353\266\200\353\266\204_\353\254\270\354\236\220\354\227\264.js" @@ -0,0 +1,21 @@ +function solution(t, p) { + const len = p.length + let answer = 0 + + for (let i = 0; i <= t.length - len; i++) { + const numbers = t.slice(i, i + p.length) + if (+numbers <= +p) { + answer++ + } + } + + return answer +} + +solution('3141592', '271') +// solution('500220839878', '7') +// solution('3141592', '271') +// t p result +// "3141592" "271" 2 +// "500220839878" "7" 8 +// "10203" "15" 3