FrontEnd/PS through Javascript (8) 썸네일형 리스트형 Node.js) BOJ 20040번 : 사이클게임 https://www.acmicpc.net/problem/20040 const fs=require('fs'); const filepath=process.platform==='linux'?'dev/stdin':'./input.txt'; const input = fs.readFileSync(filepath).toString().trim().split("\n"); input[0]=input[0].split(" ").map(n=>+n); const node=input[0][0]; const times=input[0][1]; class Edge{ constructor(from, to){ this.from=from; this.to=to; } } class UnionFind{ constructor(n){ this.p.. Node.js) BOJ 11286번 : 절댓값 힙 const [_, ...input] = fs.readFileSync(filepath).toString().trim().split("\n"); 위와 같은 표현식이 낯설었다. 이렇게 쓴 이유는 인자를 받을 때 처음 받는 인자는 불필요하여 버릴때 위와 같이 배열 안에 언더바를 사용할 수 있다. input은 내가 입력한 데이터를 포함한 개행문자까지 모두 포함되고 거기에 추가로 배열의 형식인 쉼표 까지 추가된다. 예를들어 이 문제의 초기 입력 데이터가 와 같을 때 input에 들어간 값을 console.log로 확인해 보면 와 같음을 확인할 수 있다(아래 코드에 모든거 남겨놓았다). 그리고 이것을 const num = input.map(v => +v); 한 결과 num을 출력해 보면 num: 1,-1,0,0,0,.. 백준(BOJ) 1463: 1로 만들기 이미 푼 문제이므로 다른 설명은 따로 하지 않겠다. 다만 node.js로 풀때 입력값을 받을 때 아래와 같이 toString()뒤에 있는 split("\n")가 이 문제에서는 redundant하다. 문제가 여기에서 그치면 상관없는데 이런 부수적인 것이 있으면 라고 오류를 뱉는다. const fs=require('fs'); const filepath=process.platform==='linux'?'dev/stdin':'./input.txt'; let input=fs.readFileSync(filepath).toString().split("\n"); solution(+input) function solution(n){ const dp=new Array(n+1).fill(0); for(let i=2;i 백준(BOJ) 2798: 블랙잭 https://www.acmicpc.net/problem/2798 const fs=require('fs'); const filepath=process.platform==='linux'?'dev/stdin':'./input.txt'; let input=fs.readFileSync(filepath).toString().split("\n"); input[0]=input[0].split(" ").map(ele=>+(ele)); const n=input[0][0]; const target=input[0][1]; const arr=input[1].split(" ").map(ele=>+(ele)); let elements=new Array(3); // console.log(elements); console.log(s.. 백준(BOJ) 2920: 음계 https://www.acmicpc.net/problem/2920 https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Expressions_and_operators 풀이법중 이해가 되지 않았던 논리 연산자를 사용한 풀이가 있어서 논리 연산자에 관한 아래 사항을 먼저 정리한다. 객체 관련된 아래의 문법도 처음본다. const fs=require('fs'); const filepath=process.platform==='linux'?'dev/stdin':'./input.txt'; let input=fs.readFileSync(filepath).toString().split("\n"); const result = { '1 2 3 4 5 6 7 8': 'as.. 백준(BOJ) 4344: 평균은 넘겠지 우선 정답코드는 아래와 같다. const fs=require('fs'); const filepath=process.platform==='linux'?'dev/stdin':'./input.txt'; let input=fs.readFileSync(filepath).toString().split("\n"); let T=input[0]*1; for (let i=1;iitem*1) let length=arr.shift(); console.log("function call") solution(length, arr); } function solution(length, arr){ let count=0; let sum=arr.reduce((acc, ele)=>acc+=ele, 0); let avg=sum/length; .. 자바스크립트에서 값 입력받기 참고: https://www.youtube.com/watch?v=myDEDaaOd30&t=854s 참고: https://velog.io/@bomida/JS-%EC%BD%94%EB%94%A9-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%A4%80%EB%B9%84-%EA%B0%92-%EC%9E%85%EB%A0%A5-%EB%B0%9B%EA%B8%B0 코테에서 자바스크립트 사용시 값 입력받기. 백준에서 Node.js로 입력값을 받기 위해선 readline 모듈 또는 fs 모듈을 사용하면 된다. 이 둘 중 fs모듈이 더 빠르므로 fs를 사용하도록 한다. 단, 문제를 풀다보면 fs로는 컴파일 에러가 나는 경우가 있다. 그럴땐 readline을 사용해야 한다. fs는 FileSystem의 약자로 파일 처.. 기초문법 with Algorithm (ing) Sol1. parseInt에 대해서. parseInt는 문자열 인자를 파싱하여 특정 진수(수의 진법 체계에서 기준이 되는 값)의 정수를 반환하는 함수이다. 즉, 여기서는 인자가 애초에 문자열이 아니므로 어색한 해결책이 된다. 만약 문자열이 아닐 경우에는 와 같이 추가적 연산이 들어가므로 적절한 해결책이라 보기 힘들다. 이문제에서 parseInt를 사용하므로써 낭비되는 비용 1. number를 string으로 바꾼다. 2. 10진수 추론을 위해 string 앞 2글자가 0x 혹은 0X인지 비교한다. Sol2. Math.floor ==>>주어진 숫자와 같거나 작은 정수 중에서 가장 큰 수를 반환합니다. 따라서 이 문제는 아래와 같이 코드를 작성하는 것이 Sol1보다 효율적이다. 이전 1 다음