PS/제코베 JS 100제
제코베 JS 100제 / 100 / 퍼즐게임
N x M으로 이루어진 아래와 같은 공간에 퍼즐이 쌓여져 있습니다. 퍼즐을 맞추기 위해서는 반드시 맨 오른쪽 줄로 이동시켜 줘야 합니다. 만약 종류가 같은 퍼즐이 연속될 시에 점수가 추가되며 그 퍼즐은 사라집니다. 점수는 다음과 같습니다. - 파란색 공 : 1점 - 빨간색 공 : 2점 - 노란색 공 : 3점 - 초록색 공 : 4점 - 주황색 공 : 5점 점수는 공의 개수만큼 추가됩니다. 예를 들어 빨간색 공이 2개 연속되어 없어졌을 경우 2*2 = 4점입니다. 게임 플레이어는 게임이 시작되면 어떤 퍼즐을 이동할 것인지 모두 작성합니다. 만약 비어있는 곳을 선택하게 된다면 점수가 1점 감소하며 그대로 진행합니다. 위 규칙에 맞는 점수를 리턴하는 함수를 작성하세요. /** * 퍼즐의 점수를 나타낸 2차원 배..
제코베 JS 100제 / 99 / 토끼들의 행진
토끼들이 징검다리를 건너려고 합니다. 하지만 돌이 부실해서 몇 번 건너지 못할 것 같습니다. 대기 중인 토끼들의 통과 여부를 배열에 담아 출력해 주세요. 1. 각 돌들이 얼마나 버틸 수 있는지 배열로 주어집니다. 2. 각 토끼가 착지할 때마다 돌의 내구도는 1씩 줄어듭니다. ex) [1,2,1,4] 각 돌마다 1마리 2마리 1마리 4마리의 착지를 버틸 수 있습니다. 3. 토끼들은 점프력이 각자 다릅니다. ex) [2,1] 첫 번째 토끼는 2칸씩, 두 번째 토끼는 1칸씩 점프합니다. 4. 각 토끼들은 순서대로 다리를 건넙니다. function solution() { let stoneDurabilityArr = [1, 2, 1, 4, 5, 2]; const RABBIT_JUMP_POWER_ARR = [2, ..
제코베 JS 100제 / 98 / 청길이의 패션 대회
패션의 선도주자 청길이는 패션의 발전을 위해 패션쇼를 방문해 유니크한 아이템을 조사하기로 하였습니다. 청길이는 입장하는 사람들의 패션에서 처음 보는 아이템 만을 기록합니다. 이때 청길이의 기록에서 아래 규칙에 맞게 배열로 출력해 주세요. 청길이는 각 옷의 종류를 정수로 기록해 놓습니다. ex) 입력은 "1번: 3,1 2번: 4 3번: 2,1,3 4번: 2,1,3,4" 형태의 문자열입니다. 기록은 청길이가 번호 순서로 유니크한 옷의 번호를 적습니다. 유니크한 옷은 기록된 순서로 추출되고 출력됩니다. ex) 출력은 [3,1,4,2]입니다. function solution() { const INPUT = '1번: 4,2,3 2번: 3 3번: 2,3,4,1 4번: 2,3'; const KIND_LIST = IN..
제코베 JS 100제 / 97 / 택배 배달
n 명의 택배 배달원은 쌓인 택배를 배달해야 합니다. 각 택배는 접수된 순서로 배달이 되며 택배마다 거리가 주어집니다. 거리 1당 1의 시간이 걸린다고 가정하였을 때 모든 택배가 배달 완료될 시간을 구하세요. 1. 모든 택배의 배송 시간 1 이상이며 배달지에 도착하고 돌아오는 왕복 시간입니다. 2. 택배는 물류창고에서 출발합니다. 3. 배달을 완료하면 다시 물류창고로 돌아가 택배를 받습니다. 4. 물류창고로 돌아가 택배를 받으면 배달을 시작합니다. 5. 택배를 상차할 때 시간은 걸리지 않습니다. 입력은 배달원의 수와 택배를 배달하는 배달 시간이 주어집니다. ex) 배달원이 3명이고 각 거리가 [1,2,1,3,3,3]인 순서로 들어오는 경우 function solution() { const DILIVERY..
제코베 JS 100제 / 96 / 넓은 텃밭 만들기!
수연이는 밭농사를 시작하기로 마음을 먹었다. 집 앞 텃밭을 만들기로 하고 돌들을 제거하고 있는데 매우 큰 바위는 옮기지 못해 고심하고 있다. 이에 수연이는 다음과 같은 규칙을 정한다. 1. 바위를(바위는 '1'로 표기한다.) 피해 텃밭을 만들되 정사각형 모양으로 텃밭을 만든다. 2. 텃밭은 가장 넓은 텃밭 1개만 만들고 그 크기를 반환한다. 3. 만든 텃밭은 모두 '#'으로 처리한다. /** * 2차원 배열인 텃밭 배열을 받아, * 가장 넓은 텃밭의 크기와 만든 텃밭을 출력하는 함수 * * @param {number[][]} GARDEN */ function makeWideGarden(GARDEN) { const ROW_COUNT = GARDEN.length; const COL_COUNT = GARDEN..
제코베 JS 100제 / 95 / 도장찍기
빈 종이에 stamp 모양으로 생긴 도장을 90*k 도로 회전하여 찍습니다. 도장은 N*N 크기이며 각 도장이 찍히는 부분은 1 이상의 자연수와 도장이 찍히지 않는 0으로 이루어져 있습니다. 도장의 크기 N과, 종이에 찍힌 도장 횟수를 표현한 stamp 배열과, 얼만큼 회전할 것인지를 알려주는 회전수 k를 입력받았을 때 각 위치에서 몇 번 도장이 찍혔는지 그 결과값을 출력하세요 /** * 2차원 배열로 구성된 도장과 회전 횟수를 인자로 받아, * 회전 횟수만큼 돌린 도장을 return 해주는 함수 * * @param {number[][]} STAMP 도장 * @param {number} ROTATE_COUNT 회전 횟수 * @returns {number[][]} 오른쪽으로 90도 회전한 도장 return..