분류 전체보기
-
[백준 / javascript] 1021번 회전하는 큐알고리즘 2023. 4. 10. 15:25
https://www.acmicpc.net/problem/1021 큐의 절반 길이와 추출해야 하는 원소의 인덱스를 비교해서 2, 3번 방법 중 하나를 택하면 된다. // 1021 : 회전하는 큐 const readFile = process.platform === 'linux' ? '/dev/stdin' : 't.txt'; const input = require('fs') .readFileSync(readFile) .toString() .trim() .split('\\n'); const arr = input[0]; const [n, m] = arr.split(' '); const nums = input[1].split(' '); let queue = []; // 1 ~ n 까지 배열 생성 for (let ..
-
[백준 / javascript] 1065번 한수알고리즘 2023. 4. 10. 15:25
https://www.acmicpc.net/problem/1065 이번 문제는 파이썬으로도 풀어봤던 문제여서 풀이방법이 바로 생각났다. 99까지는 모두 한수이므로 1씩 더해주고 100부터는 문자로 자료형을 바꿔서 연속된 두 개의 수의 차이를 비교해서 한수인 걸 판단하는 방법으로 풀었다. // 1065 : 한수 const readFile = process.platform === 'linux' ? '/dev/stdin' : 't.txt'; const target = require('fs').readFileSync(readFile).toString().trim(); let cnt = 0; for (let n = 1; n
-
[백준 / javascript] 4949번 균형잡힌 세상알고리즘 2023. 4. 4. 03:17
https://www.acmicpc.net/problem/4949 const readFile = process.platform === 'linux' ? '/dev/stdin' : 't.txt'; const input = require('fs') .readFileSync(readFile) .toString() .trim() .split('\\n'); const open = ['(', '[']; const close = [')', ']']; let stack; const answer = []; input.slice(0, input.length - 1).forEach((v) => { let check = false; stack = []; for (let i = 0; i < v.length; i++) { if ..
-
[백준 / javascript] 25325번 학생 인기도 측정알고리즘 2023. 3. 31. 13:55
https://www.acmicpc.net/problem/25325 25325번: 학생 인기도 측정 학생 이름이 공백으로 구분된 문자열 A가 주어진다. 문자열 A에는 중복된 학생 이름이 존재하지 않는다. 학생 이름은 알파벳 소문자로 이루어져 있다. 각 학생이 좋아하는 학생의 학생 이름 목록 www.acmicpc.net // 25325 : 학생 인기도 측정 const readFile = 'dev/stdin'; const input = require('fs') .readFileSync(readFile) .toString() .trim() .split('\\n'); const n = input.shift(); const student = input.shift().split(' '); let obj = {}; ..
-
[백준 / javascript] 2816번 디지털 티비알고리즘 2023. 3. 29. 15:11
https://www.acmicpc.net/problem/2816 ‘1’, ‘4’번만 이용해서 풀었다. // 2816 : 디지털 티비 const readFile = '/dev/stdin'; const [n, ...input] = require('fs') .readFileSync(readFile) .toString() .trim() .split('\\n'); let idx1 = input.indexOf('KBS1'); let idx2 = input.indexOf('KBS2'); idx2 = idx1 > idx2 ? ++idx2 : idx2; let result = ''; for (let i = 0; i < idx1; i++) { result += '1'; } for (let i = 0; i < idx1; ..
-
[백준 / javascript] 13458번 시험감독알고리즘 2023. 3. 29. 00:58
https://www.acmicpc.net/problem/13458 처음에 각 시험장의 응시생 수(a)에서 총 감독관이 감독할 수 있는 응시생의 수(b)를 빼고 남은 응시생의 수를 또 부감독관이 감독할 수 있는 응시생의 수(c)로 빼서 합걔를 구하려고 했더니 백준에서 시간초과가 발생했다. 시간초과가 발생한 코드 const readFile = '/dev/stdin'; const input = require('fs') .readFileSync(readFile) .toString() .trim() .split('\n'); const [n, people, supervisor] = input; const [b, c] = supervisor.split(' ').map((i) => Number(i)); const a..
-
[백준] 1935번 후위 표기식2(javascript)알고리즘 2023. 3. 28. 02:22
https://www.acmicpc.net/problem/1935 후위 표기식을 처음들어봤고 감이 전혀 잡히지 않아 구글링을 통해 문제를 풀게 되었다. 입력값에서 피연산자의 개수와 후위 표기식, 후위표기식에 대응하는 값이 주어져서 어떻게 분해해야 하나 싶었는데, rest 문법을 사용하면 되는 문제였다. 분명 공부했는데 머릿속에서 떠오르지 못해서 아쉽다. 후위 표기법의 핵심은 연산자를 만나면 연산자 직전의 두 숫자를 연산해주고 다시 스택에 넣는 것이다. 정답 코드는 다음과 같다. // 1935 : 후위 표기식2 const readFile = '/dev/stdin'; const input = require('fs') .readFileSync(readFile) .toString() .trim() .split(..
-
1장 데이터 타입JavaScript 2023. 3. 27. 03:04
💡‘코어 자바스크립트’ 책을 보며 정리한 글입니다. 1. 데이터 타입의 종류기본형(primitive type)Number, String, Boolean, null, undefined, Symbol값이 담긴 주솟값 복제불변값참조형(reference type)Array, Function, Date, RegExp, Map, WeakMap, Set, WeakSet값이 담긴 주솟값들로 이루어진 묶음을 가리키는 주솟값 복제가변값 2. 데이터 타입에 관한 배경지식2.1 메모리와 데이터자바스크립트는 상대적으로 메모리 관리에 대한 압박에서 자유로움숫자의 경우 8바이트를 확보모든 데이터는 메모리 주솟값을 통해 서로 구분하고 연결할 수 있다. 2.2 식별자와 변수변수 : 변할 수 있는 수식별자 : 변수명, 어떤 데이터를 식..