본문 바로가기

코딩 테스트 풀이

(35)
[LV2] 마법의 엘리베이터 문제 설명마법의 세계에 사는 민수는 아주 높은 탑에 살고 있습니다. 탑이 너무 높아서 걸어 다니기 힘든 민수는 마법의 엘리베이터를 만들었습니다. 마법의 엘리베이터의 버튼은 특별합니다. 마법의 엘리베이터에는 -1, +1, -10, +10, -100, +100 등과 같이 절댓값이 10c (c ≥ 0 인 정수) 형태인 정수들이 적힌 버튼이 있습니다. 마법의 엘리베이터의 버튼을 누르면 현재 층 수에 버튼에 적혀 있는 값을 더한 층으로 이동하게 됩니다. 단, 엘리베이터가 위치해 있는 층과 버튼의 값을 더한 결과가 0보다 작으면 엘리베이터는 움직이지 않습니다. 민수의 세계에서는 0층이 가장 아래층이며 엘리베이터는 현재 민수가 있는 층에 있습니다.마법의 엘리베이터를 움직이기 위해서 버튼 한 번당 마법의 돌 한 개를 ..
[LV2] 쿼드압축 후 개수 세기 문제 설명0과 1로 이루어진 2n x 2n 크기의 2차원 정수 배열 arr이 있습니다. 당신은 이 arr을 쿼드 트리와 같은 방식으로 압축하고자 합니다. 구체적인 방식은 다음과 같습니다.당신이 압축하고자 하는 특정 영역을 S라고 정의합니다.만약 S 내부에 있는 모든 수가 같은 값이라면, S를 해당 수 하나로 압축시킵니다.그렇지 않다면, S를 정확히 4개의 균일한 정사각형 영역(입출력 예를 참고해주시기 바랍니다.)으로 쪼갠 뒤, 각 정사각형 영역에 대해 같은 방식의 압축을 시도합니다.arr이 매개변수로 주어집니다. 위와 같은 방식으로 arr을 압축했을 때, 배열에 최종적으로 남는 0의 개수와 1의 개수를 배열에 담아서 return 하도록 solution 함수를 완성해주세요.제한사항arr의 행의 개수는 1 ..
[LV2] 의상 문제 설명코니는 매일 다른 옷을 조합하여 입는것을 좋아합니다.예를 들어 코니가 가진 옷이 아래와 같고, 오늘 코니가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야합니다.코니는 각 종류별로 최대 1가지 의상만 착용할 수 있습니다. 예를 들어 위 예시의 경우 동그란 안경과 검정 선글라스를 동시에 착용할 수는 없습니다.착용한 의상의 일부가 겹치더라도, 다른 의상이 겹치지 않거나, 혹은 의상을 추가로 더 착용한 경우에는 서로 다른 방법으로 옷을 착용한 것으로 계산합니다.코니는 하루에 최소 한 개의 의상은 입습니다.코니가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 ..
[LV2] 영어 끝말잇기 문제 설명1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다.1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다.마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다.앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다.이전에 등장했던 단어는 사용할 수 없습니다.한 글자인 단어는 인정되지 않습니다.다음은 3명이 끝말잇기를 하는 상황을 나타냅니다.tank → kick → know → wheel → land → dream → mother → robot → tank위 끝말잇기는 다음과 같이 진행됩니다.1번 사람이 자신의 첫 번째 차례에 tank를 말합니다.2번 사람이 자신의 첫 번째 차례에 kick을 말합니다...
[LV2] k진수에서 소수 개수 구하기 취업을 준비하며 프로젝트, 포폴에 신경쓰느라 블로그를 너무 방치한 것 같다.코테를 대비하여 열심히 문제풀이를 하고 있으니 문제 풀이와 개발 공부 하는 것들을 다시 올려야겠다문제 설명양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다.0P0처럼 소수 양쪽에 0이 있는 경우P0처럼 소수 오른쪽에만 0이 있고 왼쪽에는 아무것도 없는 경우0P처럼 소수 왼쪽에만 0이 있고 오른쪽에는 아무것도 없는 경우P처럼 소수 양쪽에 아무것도 없는 경우단, P는 각 자릿수에 0을 포함하지 않는 소수입니다.예를 들어, 101은 P가 될 수 없습니다.예를 들어, 437674을 3진수로 바꾸면 211020101011입니다. 여기서 ..
구현 - 왕실의 나이트 문제 설명 체스판은 8x8 크기이며, 나이트는 L자 형태로만 이동 가능. 수직으로 2칸 이동 후 수평으로 1칸 이동 또는 수평으로 2칸 이동 후 수직으로 1칸 이동 행 위치는 1부터 8, 열 위치는 a부터 h까지로 나타냄 이때 나이트가 이동할 수 있는 경우의 수를 계산 문제 조건 첫째줄에 8x8 좌표 평면상에서 현재 나이트가 위치한 곳의 좌표를 나타내는 두 문자로 구성된 열이 입력된디 입력 예시 a1 출력 : 2 평행 이동이 아니라 그 좌우로 또는 상하로 2칸 움직인 후 다시 상하 또는 좌우로 1칸 움직이는 방식이었다. 아이디어 : 여타 이동 문제와 비슷하게, 이동한 후의 좌표가 체스판 밖으로 넘어간다면 이동하지 않고, 체스판 안쪽이라면 이동 상하 이동과 좌우 이동이 반드시 함께 하기 때문에 2차원 배열..
그리디 알고리즘 - 1이 될 때 까지 문제 설명 어떠한 수 N이 1이 될 때 까지 다음 두 과정중 하나를 반복적으로 선택하여 수행하려고 한다. N에서 1을 뺀다 N을 K로 나눈다(단, N이 K로 나누어 떨어질 때만 선택 가능) 문제 조건 첫째줄에 N(2 ≤ N ≤100000)과 K(2 ≤ K ≤ 100000)가 공백으로 구분되며 각각 자연수로 주어진다. N은 항상 K보다 크거나 같다 입력 예시 25 5 출력 : 2 NxM 배열 형태로 놓여있는 카드들을 각 행별로 하나씩 골라 가장 큰 수를 찾는 문제이다. 단, 각 행에서 가장 작은 수를 골라야 한다. 아이디어 : 각 행별로 최솟값들을 모은 뒤, 그 중에서 최댓값을 구함 최솟값 = Math.min() 최댓값 = Math.max 나의 답안 let answer = 0 let [n, K] = pro..
그리디 알고리즘 - 숫자 카드 게임 문제 설명 숫자 카드가 NxM개 존재. 뽑을 카드가 있는 행에서 카드를 한장 선택 뽑은 카드는 해당 행에서 가장 작은 수를 가진 카드여야 함 최종적으로 가장 높은 수를 뽑는 사람이 이기는 게임 문제 조건 첫째줄에 행의 개수 N과 열의 개수 M이 주어지며, 각 자연수는 공백으로 구분한다. (1 ≤ N, M ≤ 100) 둘째부터 N개의 줄에 걸쳐 카드의 적힌 숫자가 주어진다. 각 숫자는 1부터 10000까지의 자연수이다. 입력 예시 3 3 3 1 2 4 1 4 2 2 2 출력 : 2 NxM 배열 형태로 놓여있는 카드들을 각 행별로 하나씩 골라 가장 큰 수를 찾는 문제이다. 단, 각 행에서 가장 작은 수를 골라야 한다. 아이디어 : 각 행별로 최솟값들을 모은 뒤, 그 중에서 최댓값을 구함 최솟값 = Math...