diff --git "a/live8/test84/\353\254\270\354\240\2341/\355\231\251\354\236\245\355\230\204.js" "b/live8/test84/\353\254\270\354\240\2341/\355\231\251\354\236\245\355\230\204.js" new file mode 100644 index 00000000..2d7d05cd --- /dev/null +++ "b/live8/test84/\353\254\270\354\240\2341/\355\231\251\354\236\245\355\230\204.js" @@ -0,0 +1,41 @@ +const input = require('fs') + .readFileSync(process.platform === 'linux' ? '/dev/stdin' : './input.txt') + .toString() + .trim() + .split('\n') + .map((el) => el.split(' ').map(Number)); + +function solution(input) { + const T = input[0]; + let idx = 1; + let result = []; + for (let i = 0; i < T; i++) { + const [N, M] = input[idx]; + const A = input[idx + 1]; + const B = input[idx + 2]; + A.sort((a, b) => a - b); + B.sort((a, b) => a - b); + let count = 0; + const bMaxNum = Math.max(...B); + + for (let j = 0; j < N; j++) { + if (A[j] > bMaxNum) { + count += M; + continue; + } + for (let k = 0; k < M; k++) { + if (A[j] > B[k]) count++; + else break; + } + } + result.push(count); + + idx += 3; + } + return result.join('\n'); +} + +console.log(solution(input)); + +// 노가다로 풀었더니 이진탐색이랑 4배 차이 ㄷㄷ +// 배열에서 원하값 찾을 때 이진탐색 생각하기 diff --git "a/live8/test84/\353\254\270\354\240\2342/\355\231\251\354\236\245\355\230\204.js" "b/live8/test84/\353\254\270\354\240\2342/\355\231\251\354\236\245\355\230\204.js" new file mode 100644 index 00000000..38854a1f --- /dev/null +++ "b/live8/test84/\353\254\270\354\240\2342/\355\231\251\354\236\245\355\230\204.js" @@ -0,0 +1,31 @@ +const input = require('fs') + .readFileSync(process.platform === 'linux' ? '/dev/stdin' : './input.txt') + .toString() + .trim() + .split('\n') + .map((el) => el.split(' ').map(Number)); + +function solution(input) { + const [K, N] = input[0]; + const lanList = input.slice(1); + + let low = 1; + let high = Math.max(...lanList); + let answer = 0; + + while (low <= high) { + let mid = Math.floor((low + high) / 2); + let count = lanList.reduce((acc, cur) => acc + Math.floor(cur / mid), 0); + + if (count >= N) { + answer = mid; + low = mid + 1; + } else { + high = mid - 1; + } + } + + return answer; +} + +console.log(solution(input)); diff --git "a/live8/test84/\353\254\270\354\240\2343/\355\231\251\354\236\245\355\230\204.js" "b/live8/test84/\353\254\270\354\240\2343/\355\231\251\354\236\245\355\230\204.js" new file mode 100644 index 00000000..009132c5 --- /dev/null +++ "b/live8/test84/\353\254\270\354\240\2343/\355\231\251\354\236\245\355\230\204.js" @@ -0,0 +1,15 @@ +function solution(skill, skill_trees) { + let count = 0; + + skill_trees.forEach((tree) => { + let filtered = tree + .split('') + .filter((s) => skill.includes(s)) + .join(''); + if (skill.startsWith(filtered)) count++; + }); + + return count; +} + +console.log(solution('CBD', ['BACDE', 'CBADF', 'AECB', 'BDA']));