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 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