PS/Programmers

    Programmers / Level 2 / 리코쳇 로봇 / JS

    문제 간단설명시작 위치에서 목표 위치까지 최소 몇 번만에 도달할 수 있는지 말하는 게임이다. 말은 상, 하, 좌, 우 4방향 중 한 방향으로만 움직일 수 있으며, 게임판 맨 끝이나 장애물에 부딪힐 때까지 미끄러져 이동하는 것을 한 번의 이동으로 한다.'.' : 빈 공간'R' : 로봇의 처음 위치'D' : 장애물의 위치'G' : 목표지점 게임판은 위 4가지로 구성되어 있으며, 최소 몇 번을 이동해야 하는지 반환하면 된다. 만약 도달할 수 없다면 -1을 반환하면 된다. 제한 사항3 3 board의 원소의 길이는 모두 동일하다.'R'과 'G'는 한 번씩 등장한다. 성공 코드function solution(board) { const dr = [-1, 1, 0, 0]; const dc = [0, 0, -1, ..

    Programmers / Level 2 / 테이블 해시 함수 / JS

    문제 간단설명다음과 같은 과정을 거쳐서 해시값을 반환하면 된다.테이블의 튜플을 col 번째 컬럼의 값을 기준으로 오름차순 정렬을 하되, 만약 그 값이 동일하면 기본키의 첫 번째 컬럼의 값을 기준으로 내림차순 정렬합니다.정렬된 데이터에서 S_i를 i번째 행의 튜플에 대해 각 컬럼의 값을 i로 나눈 나머지들의 합으로 정의합니다.row_begin  제한 사항1 1 1 data[i][j]는 i + 1 번째 튜플의 j + 1 번째 컬럼의 값을 의미합니다.1 1  성공 코드function solution(data, col, row_begin, row_end) { // 1. 테이블의 튜플을 col 번째 컬럼의 값을 기준으로 오름차순 정렬을 하되, // 만약 그 값이 동일하면 기본키인 첫 번째 컬럼의 값을 기..

    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; /** ..