문제 문제 출처 - https://www.acmicpc.net/problem/10811 10811번: 바구니 뒤집기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2 www.acmicpc.net 풀이 1. 최초 바구니 내부 값 부여 let arr = new Array(N).fill(1).map((a, b) => a + b);// 1 2 3 4 5 2. 주어진 범위를 for 문으로 돌려 tmpArr 에 넣고 반전시키기 3. splice를 이용해 원래 있던 것을 잘라내고 붙이기 -- 이상 절차였고, 코드에서 주석으로 설명-- 코드 const fs = require(..
문제 문제 출처 - https://www.acmicpc.net/problem/3052 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 풀이 set 는 내부 값의 중복을 허용하지 않는 것을 이용한다. map으로 42로 나눈 나머지들로 모두 바꾼 후, 이들을 set 에 넣는다. set 의 크기는 length 가 아니라 size 이다. 코드 const fs = require('fs'); const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; let input = fs.readFileSync(filePa..
문제 문제 출처 - https://www.acmicpc.net/problem/5597 5597번: 과제 안 내신 분..? X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, www.acmicpc.net 풀이 자료 구조 hash map 을 만든다. const map = new Map(); 그리고 있는 숫자는 1, 없는 숫자는 0이 되어 0일 때 해당 숫자를 출력하도록 한다. if (!map.has(i)) console.log(i);// if 문 조건이 hash map 에 있는 지를 판별해냄 코드 const fs = require('fs'); const filePat..
문제 문제 출처 - https://www.acmicpc.net/problem/10813 10813번: 공 바꾸기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 바구니에는 공이 1개씩 들어있고, 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 www.acmicpc.net 풀이 fill과 map 메소드를 이용하여 1 2 ... N 까지 넣은 array를 생성한다. let arr = new Array(N)// N개의 빈 공간 생성 .fill(1)// 모두 1을 넣음 .map((a, b) => a + b);// 1, 1+1, 1+1+1, 1+1+1+1, ... 그 다음 tmp라는 변수 활용하여 수 바꾸기 tmp = arr[a - 1]; // 정수 X를..
문제 문제 출처 - https://www.acmicpc.net/problem/10810 10810번: 공 넣기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 또, 1번부터 N번까지 번호가 적혀있는 공을 매우 많이 가지고 있다. 가장 처음 바구니에는 공이 www.acmicpc.net 풀이 공이 들어있지 않은 바구니는 0을 출력하므로, 바구니 안 공의 기본값은 0으로 한다. 처음에 모두 0이 들어있는 배열을 생성하고, for 문을 돌려 순서대로 바구니에 값을 넣는다. 코드 const fs = require('fs'); const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; ..
문제 https://www.acmicpc.net/problem/10807 10807번: 개수 세기 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거 www.acmicpc.net 총 N개의 정수가 주어졌을 때, 정수 v가 몇 개인지 구하는 프로그램을 작성하시오. 풀이 정수 배열에 filter 메소드를 이용하여 같은 정수인 지 판별한다. 코드 const fs = require('fs'); const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; let input = fs.re..
문제 문제 출처 - https://www.acmicpc.net/problem/15552 15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. www.acmicpc.net 본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다. 입력과 출력 스트림은 별개이므로, 테스트케이스를 전부 입력받아서 저장한 뒤 전부 출력할 필요는 없다. 테스트케이스를 하나 받은 뒤 하나 출력해도 된다. 풀이 console.log를 for문 안에 넣어 루프 한 번에 출력 한 번을 실행하면 시간 초과..
문제 문제 출처 - https://www.acmicpc.net/problem/14681 14681번: 사분면 고르기 점 (x, y)의 사분면 번호(1, 2, 3, 4 중 하나)를 출력한다. www.acmicpc.net 풀이 fs 모듈로 풀면 런타임에러가 났다. 구글링을 통해 readline으로 풀어야 한다는 것을 알았다. (문제 푸는 로직은 동일) 코드 const readline = require("readline"); const rl = readline.createInterface({ input : process.stdin, output: process.stdout }); let input = []; rl.on("line", function (line) { input.push(parseInt(line)..
문제 문제 출처 - https://www.acmicpc.net/problem/3009 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. 풀이 주어진 수에서 중복되지 않은 좌표값이 우리가 출력해야 하는 나머지 좌표값이다. 좌표값들을 각각 배열에 넣고 sort 메소드로 오름차순 정렬한다. 중복되지 않은 점이 어떤 것인 지는 삼항연산자로 찾는다. 코드 const fs = require('fs'); const filePath = process.platform === 'linux' ? '/d..