문제
1 합격자 찾기


2 철자 분리 집합


3 출석부


4 폭탄 구현하기



풀이
효성
1
// Run by Node.js const readline = require('readline'); (async () => { let rl = readline.createInterface({ input: process.stdin }); const inputs = []; for await (const line of rl) { inputs.push(line.trim()); rl.close(); } solution(inputs); process.exit(); })(); const solution = (data) => { const testCnt = data.shift(); for(let i = 0; i < testCnt * 2; i += 2) { let overAverageCnt = 0; const personCnt = Number(data[i]); const scoreArr = data[i + 1].split(' '); const sum = scoreArr.reduce(function add(sum, currValue) { return sum + Number(currValue); }, 0); const average = sum / personCnt; scoreArr.forEach(score => { if(score >= average) { overAverageCnt += 1; } }); console.log(`${overAverageCnt}/${personCnt}`) } }
2
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(); }) })(); const solution = (data) => { return }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', () => { solution(input) process.exit(); }) })(); const solution = (data) => { const [len, str] = data; let prevChar = ''; let answer = 0; for(let i = 0; i < Number(len); i++) { const curChar = str[i]; if(curChar !== prevChar) { answer += 1; } prevChar = curChar; } console.log(answer); }
3
const readline = require('readline'); (async () => { let rl = readline.createInterface({ input: process.stdin }); const inputs = []; for await (const line of rl) { inputs.push(line.trim()); } rl.close(); solution(inputs); process.exit(); })(); const solution = (data) => { const [N, k] = data.shift().split(' '); data.sort((a, b) => { const [n1, h1] = a.split(' '); const [n2, h2] = b.split(' '); if(n1 !== n2) { return n1.localeCompare(n2); } return h1 - h2; }); console.log(data[Number(k) - 1]); }
4
const readline = require('readline'); (async () => { let rl = readline.createInterface({ input: process.stdin }); const inputs = []; for await (const line of rl) { inputs.push(line.trim()); } rl.close(); solution(inputs); process.exit(); })(); const solution = (data) => { const [n, k] = data.shift().split(' '); const dir = [[0, 0], [1, 0], [0, -1], [-1, 0], [0, 1]]; let answer = 0; for(let i = 0; i < k; i++) { const [A, B] = data[i].split(' '); const a = Number(A); const b = Number(B); for(let j = 0; j < dir.length; j++) { const [x, y] = dir[j]; if(a + x > 0 && a + x <= n && b + y > 0 && b + y <= n) { answer += 1; } } } console.log(answer); }
코딩용사재영1234
1
// 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.trim()); }).on('close', function () { main(inputs); process.exit(); }); })(); function main(inputs) { const [n, ...infos] = inputs; for (let i = 0; i < n; i += 1) { const num = Number(infos[i * 2]); const results = infos[i * 2 + 1].split(' ').map((v) => Number(v)); const total = results.reduce((acc, cur) => acc + cur, 0); const average = total / num; console.log(`${results.filter((v) => v >= average).length}/${num}`); } }
2
// Run by Node.js const readline = require('readline'); (async () => { const 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(n, s) { return s.match( new RegExp( Array.from( { length: 'z'.charCodeAt() - 'a'.charCodeAt() + 1 }, (_, idx) => idx + 'a'.charCodeAt() ) .map((v) => `${String.fromCharCode(v)}+`) // .join('|'), 'g' // 전역 ) ).length; }
3.
// 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.trim()); }).on('close', function () { console.log(main(...inputs)); process.exit(); }); })(); function main(position, ...infos) { const [peopleCnt, targetIndex] = position.split(' '); return [...infos] .map((v) => v.split(' ')) .sort(([aName, aHeight], [bName, bHeight]) => { if (aName < bName) return -1; else if (aName > bName) return 1; else { return +aHeight - +bHeight; } }) [targetIndex - 1].join(' '); }
4.
// Run by Node.js const readline = require('readline'); (async () => { const rl = readline.createInterface({ input: process.stdin }); const inputs = []; rl.on('line', function (line) { inputs.push( line .trim() .split(' ') .map((v) => +v) ); }).on('close', function () { console.log(main(inputs)); process.exit(); }); })(); function main(inputs) { const [position, ...bombs] = inputs; const [len, bombCnt] = position; const check = (x, y) => x >= 1 && x <= len && y >= 1 && y <= len; let result = 0; const Directions = [ [0, 0], [-1, 0], [0, 1], [1, 0], [0, -1], ]; bombs.forEach((v) => { const [x, y] = v; for (let [dx, dy] of Directions) { const nx = x + dx; const ny = y + dy; if (check(nx, ny)) { result += 1; } } }); return result; }