백준

    [백준 1339] 단어 수학 / Node.js

    [백준 1339] 단어 수학 / Node.js

    https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 첫번째 풀이 ( 실패 ) let [N,...input] = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n').map((v) => v.split('')) input.sort((a,b) => b.length-a.length) let map = new Map(); let num = 9; let result = input...

    [백준 16953] A → B

    [백준 16953] A → B

    https://www.acmicpc.net/problem/16953 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net B에서 A로 찾아나가는 식으로 해결하면 간단하다 let [A,B] = require('fs').readFileSync('/dev/stdin').toString().trim().split(' ').map(Number) let cnt = 1; // 연산횟수 카운트 (문제내용상 1부터 카운트) while(A

    [백준 13305] 주유소 / Node.js / 그리디 알고리즘 기초

    [백준 13305] 주유소 / Node.js / 그리디 알고리즘 기초

    https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 문제 지문이 길어도 요점을 이해하는 것이 중요 1. 기름값이 저렴한지 비교한다. 2. 더 저렴한 주유소까지만 갈 수 있는 기름만 주유하고 이동한다. 본 문제에선 단위의 값이 크므로 BigInt를 사용하여야 한다. const input = require('fs').readFileSync('/dev/stdin') .toString().trim() .split('\n') .map((v)=..

    [백준 11047] 동전0 / Node.js / 그리디 알고리즘 기초

    [백준 11047] 동전0 / Node.js / 그리디 알고리즘 기초

    https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 문제를 풀 수 있는 방법은 다양하지만 가장 효율적이고 쉬운 방법을 찾자 let [I,...input] = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n') let K = +I.split(' ')[1] let coins = input.map(Number).so..

    [백준 1931] 회의실 배정 / Node.js

    [백준 1931] 회의실 배정 / Node.js

    https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 그리디 알고리즘(Greedy Algorithm, 탐욕 알고리즘) 매 상황에서 최선의 선택을 하는 알고리즘을 의미 알고리즘 문제를 풀기 위한 최적의 아이디어를 떠올릴 수 있는 능력을 요구한다 본 문제에선 시작 시간이 빨라도 끝나는 시간이 너무 늦어버리면 다음 회의를 하지 못하는 경우가 생길 수 있다. => 최대한 회의실을 사용하기 위해서는 끝나는 시간이 빨라야 한다. 주의사항으로 회의실을 이용하는 시간은 겹칠 수 없다는 점도 유의한다. 또한, 끝나는 시간이 같을 경우에는 일찍 시작을 해야 최대한 더 많이 이용을 할..

    [백준 2108] 통계학 / 배열 요소의 최빈값 구하기 / Object.entries()

    [백준 2108] 통계학 / 배열 요소의 최빈값 구하기 / Object.entries()

    https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 셋째 줄 최빈값 구하는것 때문에 애를 많이 먹었습니다. let input = z.toString().trim().split('\n').map(Number) let N = input[0] // 개수 const arr = input.slice(1); // 정수 배열 let a = Math.round(arr.reduce((acc,cur) => acc+cur) / N ) // 1. 산술평균 let b = arr.sor..

    [백준 18870] 좌표 압축 / Map

    [백준 18870] 좌표 압축 / Map

    https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net let input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n') let arr = input[1].split(' ').map(Number) /// [ 2, 4, -10, 4, -9 ] 입력된 좌표 let set = [...new Set(arr)].sort((a,b)..

    [백준 1181번] 단어정렬 / Set(배열중복제거) / localeCompare() (단어정렬)

    [백준 1181번] 단어정렬 / Set(배열중복제거) / localeCompare() (단어정렬)

    https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net let input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n') const result = [...new Set(input.slice(1))] .sort((a,b) => a.length-b.length || a.localeCompare(b)); console.log(result.join('\n')) lo..

    [백준 2587] 대표값2 (Node.js)

    [백준 2587] 대표값2 (Node.js)

    https://www.acmicpc.net/problem/2587 2587번: 대표값2 어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 + www.acmicpc.net let i = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n').sort((a,b)=>(a-b)).map(Number) console.log(`${i.reduce((a,c)=>a+c)/5}\n${i[2]}`) 숏코딩은 재미로 보라고 하지만.. 처음으로 1등하여 무척 감격스럽습니다.. ㅜ

    [백준 2738] 행렬 덧셈 (Node.js) / 자바스크립트 행렬끼리 덧셈

    [백준 2738] 행렬 덧셈 (Node.js) / 자바스크립트 행렬끼리 덧셈

    https://www.acmicpc.net/problem/2738 2738번: 행렬 덧셈 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같 www.acmicpc.net let input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n') let [N,M] = input[0].split(' ').map(Number); for(let i=1; i x + b[y]).join(' ')) //첫번째+두번째 행렬의 합 (map 이용) }; 숏코딩 첨으로 순위권에 들었다..