다윤 풀이
const { stat } = require("fs"); const filePath = process.platform === "linux" ? "/dev/stdin" : "input.txt"; let input = require("fs").readFileSync(filePath).toString().trim().split("\n"); const N = Number(input[0]); const numbers = input[1] .split(" ") .map((a) => +a) .sort((a, b) => a - b); const M = Number(input[2]); const cases = input[3].split(" ").map((a) => +a); const answer = []; cases.forEach((target) => { let start = 0; let end = numbers.length - 1; let flag = true; while (start <= end) { let mid = parseInt((start + end) / 2); if (numbers[mid] === target) { answer.push(1); flag = false; break; } else if (numbers[mid] < target) { start = mid + 1; } else { end = mid - 1; } } if (flag) answer.push(0); }); console.log(answer.join("\n"));
민수 풀이
재현 풀이
송희 풀이
const fs = require("fs"); const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt"; let [n, nArr, m, mArr] = fs.readFileSync(filePath).toString().trim().split("\n"); let result = []; const sortedNArr = nArr.split(" ").sort((a, b) => +a - +b); mArr.split(" ").forEach((num) => { let left = 0; let right = sortedNArr.length - 1; let mid = Math.floor((left + right) / 2); while (right >= left) { if (sortedNArr[mid] > +num) right = mid - 1; else left = mid + 1; mid = Math.floor((left + right) / 2); } if (sortedNArr[mid] == num) return result.push(1); result.push(0); }); console.log(result.join(" "));
승민 풀이
let fs = require('fs'); //const [n, l1, m, l2] = fs.readFileSync('/dev/stdin').toString().split('\n'); const [n, l1, m, l2] = fs.readFileSync(__dirname + '/ex2.txt').toString().split('\n'); let result = [] const l1s = l1.split(' ').map(Number).sort((a, b) => a - b) const l2s = l2.split(' ').map(Number) function bsearch(l1, num, left, right) { let r = 0; const mid = ~~((left + right) / 2) if (left > right || mid >= l1.length) { return 0 } if (l1[mid] > num) { r = bsearch(l1, num, left, mid - 1) } else if (l1[mid] < num) { r = bsearch(l1, num, mid + 1, right) } else { return 1 } return r } for (const l2e of l2s) { result.push(bsearch(l1s, l2e, 0, l1s.length)) } console.log(result.join('\n'))