programmers
Programmers / Level 2 / 무인도 여행 / JS
문제 간단설명지도는 1 x 1 사각형들로 이루어진 직사각형 격자 형태이다. 각 칸에는 'X' 또는 1에서 9사이의 자연수가 적혀있다. 'X'는 바다를 나타내며, 숫자는 무인도를 나타낸다. 상, 하, 좌, 우로 연결되는 땅들은 하나의 무인도를 이루고, 모두 합한값은 해당 무인도에서 최대 며칠동안 머물 수 있는지를 나타낸다. 각 섬에서 최대 며칠씩 머무를 수 있는지를 배열에 오름차순으로 담아 반환하면 된다. 만약 지낼 수 있는 무인도가 없다면 -1을 배열에 담아 반환하면 된다. 제한 사항3 3 maps[i]는 'X' 또는 1과 9 사이의 자연수로 이루어진 문자열이다.지도는 직사각형 형태이다. 성공 코드function solution(maps) { const totalRow = maps.length; co..
Programmers / Level 2 / 미로 탈출 / JS
문제 간단설명1 x 1 크기의 칸들로 이루어진 직사각형 형태의 미로가 있다. 시작지점에서 도착지점까지 가야하는 최소거리를 구하면 된다. 그런데, 가야하는 통로중에 문이 있는데, 레버로 먼저 열어야 지나갈 수 있다. 따라서 시작지점 -> 레버 -> 도착지점 순으로 들려야 미로를 빠져나갈 수 있다. 위와 같이 이동한다고 했을 때, 최소시간을 구하면 된다. 만약 탈출할 수 없다면 -1을 반환하면 된다. 제한 사항5 5 maps[i]는 다음 5개의 문자들로만 이루어져 있다.S : 시작 지점E : 출구L : 레버O : 통로X : 벽시작 지점과 출구, 레버는 항상 다른 곳에 존재하며 한 개씩만 존재한다.출구는 레버가 당겨지지 않아도 지나갈 수 있으며, 모든 통로, 출구, 레버, 시작점은 여러 번 지나갈 수 있다. ..
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}..