-
[백준 단계별로 풀어보기] 5. 1차원 배열 (feat.NodeJS)Development/Program Solving 2020. 12. 25. 00:23728x90
10818번: 최소, 최대
CASE 1
const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); const array = []; const onInput = (input) => array.push(input); const onClose = () => { const numbers = array[1].split(" "); let max = numbers[0]; let min = numbers[0]; for (let number of numbers) { number = Number(number); if(max < number){ max = number; } else if(min > number){ min = number; } } console.log(min, max); process.exit(); } rl.on('line', onInput) .on('close', onClose);
CASE 2
const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); const array = []; const onInput = (input) => array.push(input); const onClose = () => { const numbers = array[1].split(" "); const max = Math.max(...numbers); const min = Math.min(...numbers); console.log(min, max); process.exit(); } rl.on('line', onInput) .on('close', onClose);
2562번: 최댓값
CASE 1
const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); const array = []; const onInput = (input) => array.push(Number(input)); const onClose = () => { let max = array[0]; for (let number of array) { if(max < number){ max = number; } } console.log(`${max}\n${array.indexOf(max)+1}`); process.exit(); } rl.on('line', onInput) .on('close', onClose);
CASE 2
const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); const array = []; const onInput = (input) => array.push(Number(input)); const onClose = () => { const max = Math.max(...array); console.log(`${max}\n${array.indexOf(max)+1}`); process.exit(); } rl.on('line', onInput) .on('close', onClose);
2577번: 숫자의 개수
CASE 1
const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); const array = []; const onInput = (input) => array.push(Number(input)); const onClose = () => { const multiplication = array.reduce((pre, cur) => pre * cur); const numbers = String(multiplication).split(""); for (let index = 0; index < 10; index++) { const count = numbers.filter((number) => number == index); console.log(count.length); } process.exit(); } rl.on('line', onInput) .on('close', onClose);
CASE 2
const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); const array = []; const onInput = (input) => array.push(Number(input)); const onClose = () => { const counts = Array(10).fill(0); const multiNum = (array[0] * array[1] * array[2]).toString(); for (const number in multiNum) { counts[Number(multiNum[number])]++; } counts.map((count) => console.log(count)); process.exit(); } rl.on('line', onInput) .on('close', onClose);
CASE 3
const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); const array = []; const onInput = (input) => array.push(Number(input)); const onClose = () => { const counts = Array(10).fill(0); const multiNum = (array[0] * array[1] * array[2]).toString(); for (const i in multiNum) { counts[Number(multiNum[i])]++; } for (let i = 0; i < 10; i++) { console.log(counts[i]) } process.exit(); } rl.on('line', onInput) .on('close', onClose);
3개의 케이스에 따른 메모리와 시간은 아래와 같다.거꾸로 보면 된다. CASE 1이 제일 아래!시간복잡도는 다 같은데 왜 저런 결과가 나오는지 모르겠담...😭복잡도 계산을 잘못하는건지 뭔지.....아시는 분 계시면 제발 댓글로 알려주시면 감사하겠습니당 🙏+ 같은 소스로 실행했을 때 다른 시간이 나오는거 보면 서버 상황마다 다르게 측정되나보담..
시간 의미가 없군....
그냥 시간 복잡도 계산해서 같으면 더 가독성 좋은 코드로 작성하는게 답인듯!
3052번: 나머지
CASE 1
const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); const array = []; const onInput = (input) => array.push(Number(input)); const onClose = () => { const division = array.map((number) => number % 42); const deduplication = division.filter((number, index) => division.indexOf(number) === index); console.log(deduplication.length); process.exit(); } rl.on('line', onInput) .on('close', onClose);
1546번: 평균
CASE 1
const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); const array = []; const onInput = (input) => array.push(input); const onClose = () => { const numbers = array[1].split(" "); const max = Math.max(...numbers); const calculation = numbers.reduce((pre, cur) => { return pre + (Number(cur) / max * 100); }, 0); console.log(calculation / numbers.length); process.exit(); } rl.on('line', onInput) .on('close', onClose);
8958번: OX퀴즈
CASE 1
const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); const array = []; const onInput = (input) => array.push(input); const onClose = () => { let count = 0; for (let i = 1; i <= array[0]; i++) { count = 0; const number = array[i].split("").map(value => { if("O" === value) { count++; } else if ("X" === value) { count = 0; } return count; }); console.log(number.reduce((pre, cur) => pre + cur)); }; process.exit(); }; rl.on('line', onInput) .on('close', onClose);
4344번: 평균은 넘겠지
CASE 1
const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); const array = []; const onInput = (input) => array.push(input); const onClose = () => { for(let i=1; i<=array[0]; i++) { const inputs = array[i].split(" "); const count = Number(inputs[0]); const numbers = inputs.slice(1); const average = numbers.reduce((pre, cur) => Number(pre) + Number(cur)) / count; const result = numbers.filter((value) => Number(value) > average); console.log(`${(result.length / count * 100).toFixed(3)}%`); }; process.exit(); }; rl.on('line', onInput) .on('close', onClose);
더 나은 알고리즘이 있다면 댓글로 알려주세요! 🙏
728x90'Development > Program Solving' 카테고리의 다른 글
[백준 단계별로 풀어보기] 6. 함수 (feat. NodeJS) (0) 2020.12.27 [백준 단계별로 풀어보기] 3. for문 (feat.NodeJS) (0) 2020.12.25 [백준 단계별로 풀어보기] 2. if문 (feat.NodeJS) (0) 2020.12.23 [백준 단계별로 풀어보기] 1.입출력과 사칙연산 (feat.NodeJS) (0) 2020.12.20 [알고리즘] 빅오 표기법(Big-O notation) feat. JS (0) 2020.11.28