분류 전체보기

    Programmers / Level 2 / 배달 / JS

    문제 간단설명N개의 마을로 이루어진 나라가 있다. 이 나라의 각 마을에는 1부터 N까지의 번호가 부여되어있다.각 마을은 양방향 도로로 연결되어 있는데, 도로를 지날 때 걸리는 시간은 도로별로 다르다.1번 마을에서 각 마을로 음식 배달을 하려고 하는데, K 시간 이하로 배달이 가능한 마을에서만 주문을 받으려고 한다.주문을 받을 수 있는 마을의 개수를 반환하면 된다. 제한 사항1 1 road는 길이가 3인 배열이며, 순서대로 (a, b, c)를 나타낸다.a, b(1 두 마을 a, b를 연결하는 도로는 여러 개가 있을 수 있다.한 도로의 정보가 여러 번 중복해서 주어지지 않는다.1 임의의 두 마을간에 항상 이동 가능한 경로가 존재한다.1번 마을에 있는 음식점이 K 이하의 시간에 배달이 간으한 마을의 개수를 반..

    Programmers / Level 2 / 숫자 카드 나누기 / JS

    문제 간단설명철수와 영희는 숫자 카드를 절반씩 나눠갖는다. 그리고 다음 두 조건 중 하나를 만족하는 가장 큰 양의 정수 a의 값을 구하려한다.철수가 가진 카드들에 적힌 모든 숫자를 나눌 수 있고, 영희가 가진 카드들에 적힌 모든 숫자들 중 하나도 나눌 수 없는 양의 정수영희가 가진 카드들에 적힌 모든 숫자를 나눌 수 있고, 철수가 가진 카드들에 적힌 모든 숫자들 중 하나도 나눌 수 없는 양의 정수위 조건을 만족하는 정수 중에서 가장 큰 양의 정수 a를 반환하면 된다.만약 조건을 만족하는 a가 없다면 0을 반환한다. 제한 사항1 1 arrayA와 arrayB에는 중복된 원소가 있을 수 있음 성공 코드function solution(arrayA, arrayB) { let result = 0; /** ..

    Programmers / Level 2 / 호텔 대실 / JS

    문제 간단설명예약한 [대실 시작 시각, 대실 종료 시각] 의 배열이 담겨있는 2차원 배열이 주어진다.한 방이 사용중이라면, 퇴실 시간 이후에 10분의 청소 시간을 가진 후에 다른 사람이 사용할 수 있다.이럴 경우 최소 몇 개의 방이 있어야 모든 예약을 받을 수 있는지 반환하는 문제이다. 제한 사항1 book_time[i]는 ["HH:MM", "HH:MM"]의 형태로 이루어진 배열[대실 시작 시각, 대실 종료 시각]을 나타냄시각은 HH:MM의 형태로 24시간 표기법을 따르며, "00:00"부터 "23:59" 까지로 주어짐예약 시각이 자정을 넘어가는 경우는 없음시작 시각은 항상 종료 시각보다 빠름 성공 코드function solution(book_time) { /** * 시간 문자열을 분으로 바꿔주는 ..

    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개..