From 94c638f244b643b8251e005cad6391da72fe2961 Mon Sep 17 00:00:00 2001 From: raejun92 Date: Fri, 10 Apr 2026 23:02:21 +0900 Subject: [PATCH] =?UTF-8?q?feat(raejun):=20add=20=EC=9D=B4=EC=A7=84?= =?UTF-8?q?=EB=B3=80=ED=99=98=EB=B0=98=EB=B3=B5=ED=95=98=EA=B8=B0,=20?= =?UTF-8?q?=EC=B5=9C=EC=86=9F=EA=B0=92=EB=A7=8C=EB=93=A4=EA=B8=B0=20soluti?= =?UTF-8?q?ons?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...30\353\263\265\355\225\230\352\270\260.js" | 34 +++++++++++++++++++ ...22\353\247\214\353\223\244\352\270\260.js" | 25 ++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 "raejun/\354\235\264\354\247\204\353\263\200\355\231\230\353\260\230\353\263\265\355\225\230\352\270\260.js" create mode 100644 "raejun/\354\265\234\354\206\237\352\260\222\353\247\214\353\223\244\352\270\260.js" diff --git "a/raejun/\354\235\264\354\247\204\353\263\200\355\231\230\353\260\230\353\263\265\355\225\230\352\270\260.js" "b/raejun/\354\235\264\354\247\204\353\263\200\355\231\230\353\260\230\353\263\265\355\225\230\352\270\260.js" new file mode 100644 index 0000000..10d5be8 --- /dev/null +++ "b/raejun/\354\235\264\354\247\204\353\263\200\355\231\230\353\260\230\353\263\265\355\225\230\352\270\260.js" @@ -0,0 +1,34 @@ +function solution(s) { + let zero = 0; + let count = 0; + + while (s !== "1") { + const len = s.length; + + s = s.replaceAll("0", ""); + + const oneCount = s.length; + + s = oneCount.toString(2); + + zero += len - oneCount; + count++; + } + + return [count, zero]; +} + +/* +풀이 시간: 10분 + +시간 복잡도는 O(n log n)이다. +공간 복잡도는 O(1)이다. + +문자열 s가 "1"이 될 때까지 반복하면서, 문자열 s에서 "0"을 제거하고, 남은 "1"의 개수를 구했다. +그 다음에, "1"의 개수를 이진수 문자열로 변환했다. +반복할 때마다 제거한 "0"의 개수를 zero에 더했고, 반복한 횟수를 count에 더했다. +문자열 s가 "1"이 되면, [count, zero]를 반환했다. + +문제에서 요구사항을 그대로 구현하면 되는 문제였다. +문자열 메서드를 오랜만에 사용해서 조금 헷갈렸다. +*/ diff --git "a/raejun/\354\265\234\354\206\237\352\260\222\353\247\214\353\223\244\352\270\260.js" "b/raejun/\354\265\234\354\206\237\352\260\222\353\247\214\353\223\244\352\270\260.js" new file mode 100644 index 0000000..ace3101 --- /dev/null +++ "b/raejun/\354\265\234\354\206\237\352\260\222\353\247\214\353\223\244\352\270\260.js" @@ -0,0 +1,25 @@ +function solution(A, B) { + var answer = 0; + + A.sort((a, b) => a - b); + B.sort((a, b) => b - a); + + for (let i = 0; i < A.length; i++) { + answer += A[i] * B[i]; + } + + return answer; +} + +/* +풀이 시간: 4분 + +시간 복잡도는 O(n log n)이다. +공간 복잡도는 O(1)이다. + +배열 A는 오름차순으로 정렬하고, 배열 B는 내림차순으로 정렬했다. +그 다음에, 배열 A와 배열 B의 요소들을 순회하면서, 각 요소들을 곱해서 answer에 더했다. + +눈치껏 최솟값과 최댓값을 곱하는 방식으로 풀이했다. +근데 왜 그게 최솟값이 되는지는 잘 모르겠다. +*/