Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions 주중8B/daeyeon/다음 큰 숫자.js
Original file line number Diff line number Diff line change
@@ -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;
}
60 changes: 60 additions & 0 deletions 주중8B/daeyeon/체육복.js
Original file line number Diff line number Diff line change
@@ -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;
}
31 changes: 31 additions & 0 deletions 주중8B/daeyeon/콜라 문제.js
Original file line number Diff line number Diff line change
@@ -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);
27 changes: 27 additions & 0 deletions 주중8B/daeyeon/피보나치 수.js
Original file line number Diff line number Diff line change
@@ -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];
}