diff --git "a/\354\243\274\354\244\2218B/daeyeon/\353\213\244\354\235\214 \355\201\260 \354\210\253\354\236\220.js" "b/\354\243\274\354\244\2218B/daeyeon/\353\213\244\354\235\214 \355\201\260 \354\210\253\354\236\220.js" new file mode 100644 index 00000000..00f22bea --- /dev/null +++ "b/\354\243\274\354\244\2218B/daeyeon/\353\213\244\354\235\214 \355\201\260 \354\210\253\354\236\220.js" @@ -0,0 +1,44 @@ +/* +정확성 테스트 +테스트 1 〉 통과 (0.06ms, 33.4MB) +테스트 2 〉 통과 (0.05ms, 33.4MB) +테스트 3 〉 통과 (0.07ms, 33.4MB) +테스트 4 〉 통과 (0.06ms, 33.4MB) +테스트 5 〉 통과 (0.06ms, 33.4MB) +테스트 6 〉 통과 (0.05ms, 33.4MB) +테스트 7 〉 통과 (0.06ms, 33.4MB) +테스트 8 〉 통과 (0.06ms, 33.4MB) +테스트 9 〉 통과 (0.07ms, 33.4MB) +테스트 10 〉 통과 (0.07ms, 33.4MB) +테스트 11 〉 통과 (0.06ms, 33.4MB) +테스트 12 〉 통과 (0.06ms, 33.4MB) +테스트 13 〉 통과 (0.08ms, 33.3MB) +테스트 14 〉 통과 (0.06ms, 33.4MB) +효율성 테스트 +테스트 1 〉 통과 (0.07ms, 32.9MB) +테스트 2 〉 통과 (0.08ms, 32.9MB) +테스트 3 〉 통과 (0.09ms, 33MB) +테스트 4 〉 통과 (0.08ms, 32.9MB) +테스트 5 〉 통과 (0.11ms, 33MB) +테스트 6 〉 통과 (0.09ms, 33.3MB) +*/ + +function solution(n) { + let next = n; + let convert = Countfunc(n); + for (let i = 1; ; i++) { + next = n + i; //1씩더하고 2진수로 변환한뒤 1의 개수를 count + if (Countfunc(next) === convert) break; + } + + return next; +} + +function Countfunc(num) { + num = num.toString(2); + let count = 0; + for (let i = 0; i < num.length; i++) { + if (num[i] === "1") count++; + } + return count; +} diff --git "a/\354\243\274\354\244\2218B/daeyeon/\354\262\264\354\234\241\353\263\265.js" "b/\354\243\274\354\244\2218B/daeyeon/\354\262\264\354\234\241\353\263\265.js" new file mode 100644 index 00000000..d1ea760f --- /dev/null +++ "b/\354\243\274\354\244\2218B/daeyeon/\354\262\264\354\234\241\353\263\265.js" @@ -0,0 +1,60 @@ +/* +테스트 1 〉 통과 (0.08ms, 33.4MB) +테스트 2 〉 통과 (0.08ms, 33.5MB) +테스트 3 〉 통과 (0.10ms, 33.4MB) +테스트 4 〉 통과 (0.09ms, 33.5MB) +테스트 5 〉 통과 (0.17ms, 33.5MB) +테스트 6 〉 통과 (0.08ms, 33.4MB) +테스트 7 〉 통과 (0.22ms, 33.5MB) +테스트 8 〉 통과 (0.09ms, 33.6MB) +테스트 9 〉 통과 (0.11ms, 33.4MB) +테스트 10 〉 통과 (0.10ms, 33.5MB) +테스트 11 〉 통과 (0.10ms, 33.4MB) +테스트 12 〉 통과 (0.09ms, 33.5MB) +테스트 13 〉 통과 (0.09ms, 33.5MB) +테스트 14 〉 통과 (0.09ms, 33.4MB) +테스트 15 〉 통과 (0.10ms, 33.5MB) +테스트 16 〉 통과 (0.09ms, 33.5MB) +테스트 17 〉 통과 (0.09ms, 33.4MB) +테스트 18 〉 통과 (0.09ms, 33.5MB) +테스트 19 〉 통과 (0.09ms, 33.6MB) +테스트 20 〉 통과 (0.09ms, 33.5MB) +*/ +/* eslint-disable */ + +function solution(n, lost, reserve) { + let obj = {}; + for (let i = 1; i <= n; i++) { + obj[i] = true; //모두 true로 초기화 + } + + for (let i = 0; i < lost.length; i++) + obj[lost[i]] = false; //도난당한 친구는 false로 변경 + + //여벌의 체육복은 1개. + //여벌의 체육복을 가져온 사람도 도난을 당할수 있음. 이때는 무조건 본인이 본인꺼입어야함(빌려오면안댐) + let arr = []; //실제로 빌려줄수 있는 체육복을 가진 친구번호 + for (let i = 0; i < reserve.length; i++) { + if (obj[reserve[i]] === false) { + //가져왔지만 도난을 당한 친구일때 true로 변경 + obj[reserve[i]] = true; + } + else arr.push(reserve[i]); + } + + // 앞번호부터 줘야 아래의 로직으로 최댓값을 return할수 있으므로 정렬을 해줘야함 + // TEST CASE: 5 [2,4] [3,1] 5 + arr = arr.sort((a, b) => a - b); + + for (let i = 0; i < arr.length; i++) { + //앞번호 부터 빌려줌 + if (obj[arr[i] - 1] === false) { + obj[arr[i] - 1] = true; + } + else if (obj[arr[i] + 1] === false) { + obj[arr[i] + 1] = true; + } + } + + return Object.values(obj).filter((el) => el).length; +} diff --git "a/\354\243\274\354\244\2218B/daeyeon/\354\275\234\353\235\274 \353\254\270\354\240\234.js" "b/\354\243\274\354\244\2218B/daeyeon/\354\275\234\353\235\274 \353\254\270\354\240\234.js" new file mode 100644 index 00000000..b1dcba33 --- /dev/null +++ "b/\354\243\274\354\244\2218B/daeyeon/\354\275\234\353\235\274 \353\254\270\354\240\234.js" @@ -0,0 +1,31 @@ +/* +테스트 1 〉 통과 (0.09ms, 33.5MB) +테스트 2 〉 통과 (0.02ms, 33.5MB) +테스트 3 〉 통과 (0.13ms, 33.4MB) +테스트 4 〉 통과 (0.02ms, 33.4MB) +테스트 5 〉 통과 (0.02ms, 33.5MB) +테스트 6 〉 통과 (0.09ms, 33.6MB) +테스트 7 〉 통과 (0.02ms, 33.4MB) +테스트 8 〉 통과 (0.02ms, 33.3MB) +테스트 9 〉 통과 (0.11ms, 33.4MB) +테스트 10 〉 통과 (0.02ms, 33.6MB) +테스트 11 〉 통과 (0.02ms, 33.5MB) +테스트 12 〉 통과 (0.36ms, 33.4MB) +테스트 13 〉 통과 (0.02ms, 33.4MB) +테스트 14 〉 통과 (0.02ms, 33.5MB) +*/ +// a: b개를 얻으려면 줘야하는 콜라수, b: 교환시 주는콜라수 n: 가지고 있는 콜라 +function solution(a, b, n) { + let rest = n; //남은 콜라개수 + let count = 0; //총 콜라교환 개수 + let get = 0; //얻은 콜라 + while (rest >= a) { + get = Math.floor(rest / a) * b; //비례식 + count += get; + rest = (rest % a) + get; //남은콜라 + 교환받은 콜라 + } + + return count; +} + +solution(3, 1, 20); diff --git "a/\354\243\274\354\244\2218B/daeyeon/\355\224\274\353\263\264\353\202\230\354\271\230 \354\210\230.js" "b/\354\243\274\354\244\2218B/daeyeon/\355\224\274\353\263\264\353\202\230\354\271\230 \354\210\230.js" new file mode 100644 index 00000000..301bd0bb --- /dev/null +++ "b/\354\243\274\354\244\2218B/daeyeon/\355\224\274\353\263\264\353\202\230\354\271\230 \354\210\230.js" @@ -0,0 +1,27 @@ +/* +테스트 1 〉 통과 (0.04ms, 33.5MB) +테스트 2 〉 통과 (0.13ms, 33.4MB) +테스트 3 〉 통과 (0.12ms, 33.5MB) +테스트 4 〉 통과 (0.11ms, 33.4MB) +테스트 5 〉 통과 (0.11ms, 33.4MB) +테스트 6 〉 통과 (0.12ms, 33.4MB) +테스트 7 〉 통과 (0.25ms, 33.5MB) +테스트 8 〉 통과 (0.27ms, 33.4MB) +테스트 9 〉 통과 (0.24ms, 33.4MB) +테스트 10 〉 통과 (0.36ms, 33.4MB) +테스트 11 〉 통과 (0.23ms, 33.5MB) +테스트 12 〉 통과 (0.21ms, 33.4MB) +테스트 13 〉 통과 (4.59ms, 38.9MB) +테스트 14 〉 통과 (4.79ms, 38.9MB) +*/ + +function solution(n) { + const arr = [0, 1, 1]; + let i = 0; + + while (i + 2 <= n) { + arr[i + 2] = (arr[i] + arr[i + 1]) % 1234567; + i++; + } + return arr[n]; +}