memostack
article thumbnail
백준 10951번 / A+B - 4 (nodejs 알고리즘 풀이)
Algorithm/Beakjoon 2022. 8. 6. 15:25

문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에 있습니다 문제 풀이 단순히 입력 받아서 두 수를 더한 값을 출력해주면 되는 간단한 문제이다. const solution = (input) => input .map((l) => { const [a, b] = l.split(' ').map((s) => +s); return a + b; }) .join('\n'); const input = []; require('readline') .createInterface({ input: process.stdin }) .on('line', (line) => input.push(line)) .on('close', (_) => { console.log(solution(input)); process..

article thumbnail
백준 10952번 / A+B - 5 (nodejs 알고리즘 풀이)
Algorithm/Beakjoon 2022. 8. 5. 20:41

문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에 있습니다 문제 풀이 const solution = (input) => { let findZero = false; const nums = input.reduce((acc, l) => { if (findZero) return acc; if (l === '0 0') { findZero = true; } else { acc.push(l.split(' ').map((s) => +s)); } return acc; }, []); return nums .slice(0, nums.length) .map((n) => n[0] + n[1]) .join('\n'); }; const input = []; require('readline') .crea..

article thumbnail
백준 10871번 / X보다 작은 수 (nodejs 알고리즘 풀이)
Algorithm/Beakjoon 2022. 8. 4. 21:41

문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에 있습니다 문제 풀이 첫째 줄과 두번째 줄을 입력받고 미리 정수형으로 파싱하고 문제를 풀었다. 리스트의 filter 함수를 이용하여, X보다 작은 수를 필터링했다. const solution = (input) => { const [l1, l2] = input.map((l) => l.split(' ').map((s) => +s)); return l2 .slice(0, l1[0] + 1) .filter((n) => n < l1[1]) .join(' '); }; const input = []; require('readline') .createInterface({ input: process.stdin }) .on('line', (lin..

article thumbnail
백준 2439번 / 별 찍기 - 2 (nodejs 알고리즘 풀이)
Algorithm/Beakjoon 2022. 8. 3. 21:40

문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에 있습니다 문제 풀이 앞에 여백과 * 를 합쳐주면 되는 간단한 문제이다. repeat() 함수를 이용하면 좀 더 깔끔하게 풀 수 있다. const solution = (input) => [...Array(+input).keys()] .reduce((acc, n) => { acc.push([' '.repeat(+input - n - 1), '*'.repeat(n + 1)].join('')); return acc; }, []) .join('\n'); const print = (input) => console.log(solution(input + '')); process.stdin.on('data', print); 전체 코드 http..

article thumbnail
백준 2438번 / 별 찍기 - 1 (nodejs 알고리즘 풀이)
Algorithm/Beakjoon 2022. 8. 2. 21:11

문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에 있습니다 문제 풀이 문자열의 repeat() 함수를 이용하면, for문을 돌리면서 문자열을 계속 더해줄 필요가 없다. const solution = (input) => [...Array(+input).keys()] .reduce((acc, n) => { acc.push('*'.repeat(n + 1)); return acc; }, []) .join('\n'); const print = (input) => console.log(solution(input + '')); process.stdin.on('data', print); 전체 코드 https://github.com/bluemiv/Algorithm/blob/master/bae..

article thumbnail
백준 11022번 / A+B - 8 (nodejs 알고리즘 풀이)
Algorithm/Beakjoon 2022. 8. 1. 20:49

문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에 있습니다 문제 풀이 입력 받은 두 값을 더한 뒤에 Case#1: 1 + 1 = 2 형태에 맞게 출력해주면 되는 간단한 문제이다. 자주 사용하는 문법중에 문자열을 정수로 변환할때 parseInt()를 사용해도 되지만, 주로 + 기호를 이용하여 문자열을 정수로 바꿔준다. const solution = (input) => input .slice(1, input[0] + 1) .map((s, idx) => { const [a, b] = s.split(' '); return `Case #${idx + 1}: ${a} + ${b} = ${+a + +b}`; }) .join('\n'); const input = []; require('re..

article thumbnail
백준 11021번 / A+B - 7 (nodejs 알고리즘 풀이)
Algorithm/Beakjoon 2022. 7. 31. 14:39

문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에 있습니다 문제 풀이 입력 받은 두 값을 더한 뒤에 Case#1: 2 형태에 맞게 출력해주면 되는 간단한 문제이다. 문제를 깔끔하게 풀기위해 reduce를 이용하여 합을 구하고 문자 템플릿`Case #${idx + 1}: ${n}`을 사용했다 const solution = (input) => input .slice(1, input[0] + 1) .map((s) => s.split(' ').reduce((acc, n) => acc + +n, 0)) .map((n, idx) => `Case #${idx + 1}: ${n}`) .join('\n'); const input = []; require('readline') .createIn..

article thumbnail
백준 2742번 / 기찍 N (nodejs 알고리즘 풀이)
Algorithm/Beakjoon 2022. 7. 30. 20:31

문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에 있습니다 문제 풀이 아래 문제와 역순으로 입력값부터 1까지 개행하여 출력하면 된다. 2022.07.29 - [Algorithm/Beakjoon] - 백준 2741번 / N 찍기 (nodejs 알고리즘 풀이) const solution = (input) => [...Array(+input).keys()].map((i) => +input - i).join('\n'); const print = (input) => console.log(solution(input + '')); process.stdin.on('data', print); 전체 코드 https://github.com/bluemiv/Algorithm/blob/master/b..

article thumbnail
백준 2741번 / N 찍기 (nodejs 알고리즘 풀이)
Algorithm/Beakjoon 2022. 7. 29. 21:26

문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에 있습니다. 문제 풀이 1부터 입력값까지 개행하여 출력주면 되는 간단한 문제이다. const solution = (input) => [...Array(+input).keys()].map((i) => i + 1).join('\n'); const print = (input) => console.log(solution(input + '')); process.stdin.on('data', print); 전체 코드 https://github.com/bluemiv/Algorithm/blob/master/baekjoon/nodejs/src/ex02/ex2741.js GitHub - bluemiv/Algorithm: 알고리즘 풀이 알고리즘 풀..

article thumbnail
백준 15552번 / 빠른 A+B (nodejs 알고리즘 풀이)
Algorithm/Beakjoon 2022. 7. 28. 21:17

문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에 있습니다. 문제 풀이 javascript로 풀때는 콘솔 입력을 받기 위해, 딱히 신경 쓸 필요가 없는 듯 하다. 아래 문제와 같이 단순히 입력 받아서 더한 값을 출력해주면 된다. 2022.07.26 - [Algorithm/Beakjoon] - 백준 10950번 / A+B - 3 (nodejs 알고리즘 풀이) const solution = (input) => { return input .slice(1, input[0] + 1) .map((l) => l.split(' ').reduce((acc, n) => acc + +n, 0)) .join('\n'); }; const input = []; require('readline') .c..

article thumbnail
백준 8393번 / 합 (nodejs 알고리즘 풀이)
Algorithm/Beakjoon 2022. 7. 27. 21:05

문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에 있습니다. 문제 풀이 단순히 1 부터 입력받은 값까지 더하는 문제로 한번의 loop를 통해 문제를 풀 수 있다 const solution = (input) => { return [...Array(+input).keys()].reduce((acc, i) => acc + (i + 1), 0); }; const print = (input) => console.log(solution(input + '')); process.stdin.on('data', print); 전체 코드 https://github.com/bluemiv/Algorithm/blob/master/baekjoon/nodejs/src/ex08/ex8393.js GitHu..

article thumbnail
백준 10950번 / A+B - 3 (nodejs 알고리즘 풀이)
Algorithm/Beakjoon 2022. 7. 26. 20:58

문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에 있습니다. 문제 풀이 처음에는 process.stdin.on()으로 입력을 받아서 풀었는데, 여러 줄을 입력을 받을 수 가 없어서 readline 모듈을 활용하여 여러 줄을 받을 수 있도록 했다. const solution = (input) => { const lines = input.map((s) => s.trim()); return lines .slice(1, lines[0] + 1) .map((l) => l.split(' ').reduce((acc, _n) => acc + +_n, 0)) .join('\n'); }; const input = []; require('readline') .createInterface({ in..

article thumbnail
백준 2739번 / 구구단 (nodejs 알고리즘 풀이)
Algorithm/Beakjoon 2022. 7. 25. 21:04

문제 풀이 단순히 반복해서 숫자를 곱해주면 되는 문제라 프로그래밍을 처음 접하는 사람이 풀어보기 좋은 문제다 const solution = (input) => { const num = +input; return [...Array(9).keys()].map((idx) => `${num} * ${idx + 1} = ${num * (idx + 1)}`).join('\n'); }; const print = (input) => console.log(solution(input + '')); process.stdin.on('data', print); 전체 코드 https://github.com/bluemiv/Algorithm/blob/master/baekjoon/nodejs/src/ex02/ex2739.js GitH..

article thumbnail
백준 2480번 / 주사위 세개 (nodejs 알고리즘 풀이)
Algorithm/Beakjoon 2022. 7. 24. 16:33

문제 문제 풀이 input 값들을 map 자료구조에 담아서, 동일한 주사위 눈의 개수가 몇개인지 파악하도록 했다. 만약 map의 key 값이 1개인 경우, 주사위 3개의 눈이 모두 동일한 경우 (e.g. 6, 6, 6) 2개인 경우, 주사위 눈 중 2개가 동일하고 1개가 다른 경우 (e.g. 2, 2, 5) 그 외에는 주사위 3개가 모두 눈이 다른 경우 (e.g. 2, 3, 6) const solution = (input) => { const ns = input.split(' ').map((s) => +s); const nm = ns.reduce((acc, n) => { if (acc[n]) { return { ...acc, [n]: acc[n] + 1 }; } else { return { ...acc..

article thumbnail
백준 2525번 / 오븐 시계 (nodejs 알고리즘 풀이)
Algorithm/Beakjoon 2022. 7. 23. 15:47

문제 문제 풀이 문제를 요약하면, 현재 시간에서 입력받은 분(minute)을 더한 뒤의 시각을 구하면 된다. const solution = (input) => { const [a, b, c] = input.split(/\s+/).map((s) => +s); const sum = b + c; const carry = parseInt(sum / 60); const m = sum % 60; const h = (carry > 0 ? a + carry : a) % 24; return `${h} ${m}`; }; const print = (input) => console.log(solution(input + '')); process.stdin.on('data', print); 분은 60으로 나머지 연산을 하면 구할..

article thumbnail
백준 2884번 / 알람 시계 (nodejs 알고리즘 풀이)
Algorithm/Beakjoon 2022. 7. 22. 20:28

문제 문제 풀이 문제를 요약하면, 현재 시간에서 45분을 뺀 시각을 구하면 된다. 시간 구하기 M이 45분보다 작은 경우, 시간이 바뀌기 때문에 -1을 해준다. 단 H의 값이 0 인경우에는 -1을 하면 23이 된다 분 구하기 M이 45분보다 작다면 60 + M - 45를 해주고, 크거나 같다면 M - 45를 해준다 const solution = (input) => { const [h, m] = input.split(' ').map((s) => +s); const nextH = m { const input..

article thumbnail
백준 10869번 / 사칙연산 (nodejs 알고리즘 풀이)
Algorithm/Beakjoon 2022. 7. 20. 20:40

문제 풀이 2개의 숫자를 입력받아, 사칙연산 값과 나머지 연산 값을 출력하면 되는 문제이다. 주의할 점은 나눗셈을 한 뒤에 몫만 출력해야하기 때문에 정수값으로 파싱해주는 작업을 해야한다. (솔직히 한번 틀림) const solution = (input) => { const [a, b] = (input + '').split(' ').map(s => +s); console.log(a + b); console.log(a - b); console.log(a * b); console.log(parseInt(a / b)); console.log(a % b); } process.stdin.on('data', solution); 전체 코드 https://github.com/bluemiv/Algorithm/blob/ma..

article thumbnail
백준 1000번 / A+B (nodejs 알고리즘 풀이)
Algorithm/Beakjoon 2022. 7. 19. 20:17

직장 생활하다보니 알고리즘 문제를 안풀어본지 오래된거 같아서, 다시 알고리즘 문제를 풀어보기로 했다. 매일 풀면 좋겠지만 시간이 가능하려나.. 문제 풀이 nodejs에서는 콘솔 입력을 받을때 process.stdin.on을 사용한다. 백준에서 콘솔 입력을 받는 여러가지 방법이 있는것으로 보이나, 아래 방법이 제일 간단해보여서 아래와 같이 풀었다. 문제는 상당히 쉬운 문제로, 단순히 2개의 숫자를 입력받아서 더한 값을 콘솔 출력하는 문제이다. (프로그래밍 입문자가 문법을 익힐겸 풀기엔 좋은것 같음) const solution = (input) => { const [a, b] = (input + '').split(' ').map(s => +s); console.log(a + b); } process.stdi..

article thumbnail
Programmers - 두 개 뽑아서 더하기 (Python 풀이)
Algorithm 2021. 2. 23. 23:00

문제 [문제 설명] 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. [제한사항] numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. [입출력 예] numbers result [2,1,3,4,1] [2,3,4,5,6,7] [5,0,2,7] [2,5,7,9,12] 예시 설명은 아래 클릭 더보기 입출력 예 #1 2 = 1 + 1 입니다. (1이 numbers에 두 개 있습니다.) 3 = 2 + 1 입니다. 4 = 1 + 3 입니다. 5 = 1 + 4 = 2 + 3 입니다. 6 = 2 + 4..

article thumbnail
백준 15652번 - N과 M (4) (Java 풀이)
Algorithm/Beakjoon 2020. 10. 26. 12:12

문제의 저작권은 백준 알고리즘(https://www.acmicpc.net/)에게 있습니다. 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. 고른 수열은 비내림차순이어야 한다. 길이가 K인 수열 A가 A1 ≤ A2 ≤ ... ≤ AK-1 ≤ AK를 만족하면, 비내림차순이라고 한다. 예제 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. //..