문제
1 경로의 개수


2 동명이인



3 최장 맨해튼 거리


4 소수 찾기


풀이
효성
1
const solution = (data) => { let answer = 1; const [islandCnt, ladder] = data; const ladderArr = ladder.split(' '); ladderArr.forEach(ladd => { answer *= Number(ladd); }); console.log(BigInt(answer).toString()); }
2
const solution = (data) => { let answer = 0; const firstData = data.shift(); const [studentCnt, targetName] = firstData.split(' '); data.forEach(name => { if(name.indexOf(targetName) >= 0) { answer += 1; } }); console.log(answer); }
3
const solution = (data) => { const [x1, y1, x2, y2] = data[0].split(' '); const case1 = Math.abs(x1 - y1) + Math.abs(x2 - y2); const case2 = Math.abs(x1 - x2) + Math.abs(y1 - y2); const case3 = Math.abs(x1 - y2) + Math.abs(x2 - y1); console.log(Math.max(case1, case2, case3)) }
4
const solution = (data) => { let answer = 0; const numberList = data[1].split(' '); numberList.forEach((num, index) => { if(isPrime(index + 1)) { answer += +num; } }); console.log(answer); } const isPrime = (num) => { for(let i = 2; i < num; i++) { if(num % i === 0) { return false; } } return num > 1; }
현석
// 1번 // Run by Node.js const readline = require('readline'); (async () => { let rl = readline.createInterface({ input: process.stdin }); const input = [] rl.on('line', (line) => { input.push(line.trim()) if (input.length === 2) { rl.close() } }) .on('close', () => { console.log(solution(input)) process.exit(); }) })(); function solution([strN, strBridges]) { return strBridges.split(' ').map(BigInt).reduce((a,b) => a * b, 1n).toString() }
// Run by Node.js const readline = require('readline'); (async () => { let rl = readline.createInterface({ input: process.stdin }); const names = [] let targetName = null let count = null let index = 0 rl.on('line', (line) => { if (index === 0) { const first = line.trim().split(' ') count = +first[0] targetName = first[1] } else { names.push(line.trim()) } if (count === index++) rl.close() }).on('close', () => { console.log(solution(targetName, names)) process.exit(); }) })(); function solution(targetName, names) { return names.filter(name => name.includes(targetName)).length }
// Run by Node.js const readline = require('readline'); (async () => { let rl = readline.createInterface({ input: process.stdin }); rl.on('line', (line) => { solution(line) rl.close() }) .on('close', () => { process.exit(); }) })(); function solution(line) { const numbers = line.trim().split(' ').map(Number) const findMaxTaxiDistance = (numbers) => { const [pick1, ...rest] = numbers const taxiSums = rest.map((pick2, index, self) => { const taxiSumofLastTwo = self.filter((_, i)=> i !== index).reduce((a,b) => Math.abs(a - b)) return taxiSumofLastTwo + Math.abs(pick1 - pick2) }) return Math.max(...taxiSums) } console.log(findMaxTaxiDistance(numbers)) }
// Run by Node.js const readline = require('readline'); (async () => { let rl = readline.createInterface({ input: process.stdin }); let index = 0 let length = null let nums = null rl.on('line', (line) => { if (index === 0) { length = Number(line.trim()) } else { nums = line.trim().split(' ').map(Number) rl.close() } index++ }) .on('close', () => { console.log(solution(nums)) process.exit(); }) })(); function solution(nums) { if (nums.length < 2) return 0 const primes = new Array(nums.length + 1).fill(true) primes[0] = false primes[1] = false for (let i = 2; i <= nums.length; i++) { if (primes[i]) { for (let j = i * i; j <= nums.length; j += i ) { primes[j] = false } } } return primes.reduce((a, b, index) => { if (!b) return a return a + nums[index - 1] }, 0) }
재영
// Run by Node.js const readline = require('readline'); (async () => { let rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); const inputs = []; await rl .on('line', function (line) { inputs.push(line); }) .on('close', function () { console.log(main(inputs)); process.exit(); }); })(); function main(inputs) { let result = BigInt(1); const [num, bridgesStr] = inputs; const bridges = bridgesStr.split(' '); for (let i = 0; i < num; i += 1) { const nowBridge = Number(bridges[i]); result *= BigInt(nowBridge); } return result.toString(); }
// Run by Node.js const readline = require('readline'); (async () => { let rl = readline.createInterface({ input: process.stdin }); const inputs = []; await rl .on('line', function (line) { inputs.push(line); }) .on('close', function () { console.log(main(inputs)); process.exit(); }); })(); function main(inputs) { const [info, ...names] = inputs; /* eslint-disable-next-line */ const [_, target] = info.split(' '); return names.filter((name) => name.includes(target)).length; }
// Run by Node.js const readline = require('readline'); (async () => { let rl = readline.createInterface({ input: process.stdin }); for await (const str of rl) { console.log(main(str)); rl.close(); } process.exit(); })(); function main(str) { let arr = str .trim() .split(' ') .map((p) => Number(p)); arr.sort((a, b) => b - a); return Math.abs(arr[0] - arr[3]) + Math.abs(arr[1] - arr[2]); }
// Run by Node.js const readline = require('readline'); (async () => { let rl = readline.createInterface({ input: process.stdin }); const inputs = []; rl.on('line', function (line) { inputs.push(line); }).on('close', function () { console.log(main(inputs)); process.exit(); }); })(); function main(inputs) { const [len, numbersStr] = inputs; const numbers = numbersStr.split(' ').map((v) => Number(v)); let result = 0; for (let i = 1; i < len; i += 1) { const now = i + 1; let flag = false; if (now === 2) { result += numbers[i]; continue; } for (let j = 2; j <= Math.sqrt(now, 2); j += 1) { if (flag) continue; if (now % j === 0) { flag = true; } } if (!flag) result += numbers[i]; } return result; }