백준
[BEAKJOON / node.js] 1931 회의실 배정
https://www.acmicpc.net/problem/1931 // test.txt 11 1 4 3 5 0 6 5 7 3 8 5 9 6 10 8 11 8 12 2 13 12 14 최대한 많은 회의를 열려면 종료시간이 빠른 회의 순으로 정렬 후 끝나자마자 바로 시작 가능한 회의의 개수를 세면 된다. sol1 let [num,...input] = require('fs').readFileSync('test.txt').toString().trim().split('\n'); arr = input.map(v => v.split(' ').map(i => Number(i))) let time = arr.sort((a,b) => a[1] - b[1]||a[0]-b[0]) let end = 0; let answer =..
<BEAKJOON / node.js> 11047 동전 0
https://www.acmicpc.net/problem/11047 // test.txt 10 4790 1 5 10 50 100 500 1000 5000 10000 50000 그리디 문제에 처음 도전 해보았다. 그래서 내장함수 보다는 while 이나 for 문을 사용해 케이스를 탐색해보는 식으로 해결했다. so1 으로 제출해 문제는 맞췄지만, 시간이 1900ms나 나와버려서.. 다른 해결 방법을 찾아봤다. sol1 let [n,...input] = require('fs').readFileSync('test.txt').toString().trim().split('\n'); let [num,price] = n.split(' '); price = Number(price); function solution(nu..
[BEAKJOON / node.js] 5533 유니크
https://www.acmicpc.net/problem/5533 삼중 for문으로 배열을 만들어 해결하려 했다. 이중 for문까지는 각 행을 탐색하고, 삼중 for문에서 각 열에 동일한 숫자가 있는지 확인하는 방법이다. 애초에 for문이 삼중으로 들어가는 논리도 아직 낯설뿐더러 scope 지정에서 문제가 생기고 결정적으로 코드가 너무 더러워 보였다,, for문을 최대한 자제하는 방법으로 찾아보았다. const [n, ...strs] = require('fs').readFileSync('test.txt').toString().trim().split('\n'); const arr = strs.map(str => str.split(' ').map(Number)); let arrMap = Array.from(..
<BEAKJOON / node.js> 10828 스택
https://www.acmicpc.net/problem/10828 스택을 이용한 문제는 처음 풀어보았는데, if와 else if 문으로 짜다가 에러의 벽을 넘지 못했다,, 다른 분들의 코드를 참조해서 해결했는데, 문제를 어떤 방식으로 해결하셨는지 분석해본다. const input = []; require("readline") .createInterface(process.stdin, process.stdout) .on("line", (line) => { input.push(line); }) .on("close", () => { console.log(solution(input)); process.exit(); }); //////////////백준 입출력/////////////// function solut..
<BEAKJOON> 4344 JavaScript
for문을 이용해 각 배열의 첫 요소로 주어지는 배열의 개수와 평균을 구하고 .toFixed() 메서드를 이용해 답을 구해보려 한다. const input = require('fs').readFileSync('test.txt').toString().split('\n'); const max = input[0]; for(let i=1;iacc+=v*1,0); average /= scope; for(let j=1;javerage) { cnt++; } } let result = ((cnt/scope)*100).toFixed(3); console.log(`${result}%`) } // 40.000% // 57.143% // 33.333% // 33.333% // 44.444% 계산 방식엔 문제가 없는 것 같은데..
<BEAKJOON> 14681 JavaScript
1. 삼항 조건 연산자 조건식의 평가 결과에 따라 반환할 값을 결정한다. (자바스크립트의 유일한 삼항 연산자) 조건식 ? true일 때 반환할 값 : false일 때 반환할 값 피연산자인 조건식은 불리언 타입의 값으로 평가될 표현식이다. 따라서 조건식의 평가 결과가 불리언 값이 아니라면, 불리언 값으로 암묵적 타입 변환된다. 값으로 평가할 수 있는 표현식인 문이다. if...else 문으로 유사하게 처리 가능하지만 이는 표현식이 아닌 문이다. 즉 삼항 조건 연산자 표현식은 값처럼 다른 표현식의 일부가 될 수 있기에 if...else문보다 유용하다. 조건에 따라 수행해야 할 문이 하나가 아니라 여러 개라면 if...else 문의 가독성이 더 좋을 수 있다. let x = 10; let result = x%..
<BEAKJOON / node.js> 10171, 10172
1. 템플릿 리터럴 ECMAScript 2015 이후, 문자열 리터럴은 소위 템플릿 리터럴이 될 수 있다. 이중 따옴표나 작은따옴표 대신 백틱(` `)을 사용한다. ${...} 로 표기해서 표현식을 넣을 수 있다. 표현식의 평가 결과가 문자열이 아니더라도 문자열로 타입이 강제로 변환되어 삽입된다. 백틱을 사용한 줄바꿈에는 '\n'이 내장되어 있다. 2. 이스케이프 표현 백슬래시를 사용해서 (' \ ') 일반적인 출력 문자 외의 특수 문자를 사용할 수 있다. \\ : 역슬래시 \" , \' : 큰따옴표, 작은따옴표 \t : 탭 \n : 줄 바꿈(enter) 3. 10171 (고양이) 처음엔 백틱을 까먹고 한 줄 한 줄 console 해서 풀었다 다음 문제인 강아지도 하나하나 console 하다가 이게 맞나..