전체 글
Programmers / Level 2 / 쿼드압축 후 개수 세기 / JS
문제 간단설명0과 1로만 이루어진 2차원 배열 arr가 주어진다.특정 영역내에 모두 0 또는 1로 되어있다면 하나로 압축한다.그렇지 않다면, 4개의 균일한 정사각형 영역으로 쪼갠 뒤, 위와 같이 압축한다.위 과정을 끝까지 반복했을 시에 0과 1의 개수가 몇개인지 반환하는 문제이다. 제한 사항arr의 행의 개수는 1이상 1024 이하이며, 2의 거듭 제곱수 형태를 하고 있습니다.arr는 정사각형 배열이다.arr의 각 행에 있는 모든 값은 0 또는 1이다. 성공 코드function solution(arr) { let zeroCount = 0; let oneCount = 0; /** * 영역내에 인자로 받은 number와 모두 같은 값인지 판단하는 함수이다. * * @param {number}..
백준 / 비트마스킹 / 11723번 / 집합 / JS
문제 간단설명비어있는 공집합 S가 주어졌을 때, 아래 연산을 수행하는 프로그램을 작성하시오.add x: S에 x를 추가한다. (1 ≤ x ≤ 20) S에 x가 이미 있는 경우에는 연산을 무시한다.remove x: S에서 x를 제거한다. (1 ≤ x ≤ 20) S에 x가 없는 경우에는 연산을 무시한다.check x: S에 x가 있으면 1을, 없으면 0을 출력한다. (1 ≤ x ≤ 20)toggle x: S에 x가 있으면 x를 제거하고, 없으면 x를 추가한다. (1 ≤ x ≤ 20)all: S를 {1, 2, ..., 20} 으로 바꾼다.empty: S를 공집합으로 바꾼다. 제한 사항1 시간제한 1.5초메모리 제한 4MBnode.js 제출 불가!!! 성공 코드 const fs = require('fs');co..
Programmers / Level 2 / 2개 이하로 다른 비트 / JS
문제 간단설명x가 주어지면 x보다 크고 x와 비트가 1~2개 다른 수들 중에서 제일 작은 수를 반환하면 된다. 제한 사항1 0 실패 코드 (10번, 11번 테스트케이스 실패)function solution(numbers) { const f = (n) => { if (n % 2 === 0) { return n + 1; } let bit = 1; // 가장 가까운 0을 찾는 반복문이다. while ((n & bit) !== 0) { // bit를 왼쪽으로 한 칸씩 이동시킨다. bit > 1); }; const result = numbers.map((n) => f(n)); return result;} 전체적인 로직은 틀리지 않았다. 다만 총 11개..
Programmers / Level 2 / 롤케이크 자르기 / JS
문제 간단설명철수와 동생은 롤케이크를 두조각으로 나눠 먹으려고 한다.위에 토핑이 올려져 있는데, 둘로 같게 나누는 기준은 토핑 종류의 개수이다.위에 올라가 있는 토핑 리스트가 주어질 때, 토핑 종류의 개수가 같을 수 있게 나누는 방법이 몇개인지 반환하면 된다. 제한 사항1 1 실패 코드 (시간 초과)function solution(topping) { let result = 0; for(let i=0; i 토핑이 몇개인지 상관없이 '토핑 종류의 개수'만 중요하므로 set 자료구조를 사용했다.단순히 slice로 케이크를 나누고, 각 set에 집어넣어서 size를 구하면 토핑 종류의 개수가 나온다.그렇게 양쪽 케이크의 토핑 종류의 개수가 같다면 반환값을 하나 더해주었다. 일단 for 반복문..
Programmers / Level 2 / 뒤에 있는 큰 수 찾기 / JS
문제 간단설명정수로 이루어진 배열 numbers가 있다.각 수에 대해서 가장 가깝고 자신보다 큰 수를 '뒷 수'라고 한다.각 요소에 대해 '뒷 수'들을 모아서 배열로 반환하면 된다.만약 뒷 수가 존재하지 않는다면 -1을 반환하면 된다. 제한 사항4 1 실패 코드 (시간 초과)function solution(numbers) { const result = []; for(let i=0; i cur) { backNumber = next; break; } } result.push(backNumber); } return result;} 최악의 경우에 O(n^2..
JS는 어떻게 배열의 사이즈를 지정하지 않고 사용할 수 있을까?
JavaScript의 Array ObjectsECMAScript 2025 문서엔 다음과 같이 나와있습니다. ECMAScript® 2025 Language SpecificationThe first and subsequent editions of ECMAScript have provided, for certain operators, implicit numeric conversions that could lose precision or truncate. These legacy implicit conversions are maintained for backward compatibility, but not provided for BigItc39.es"Arrays are exotic objects that give..