본문 바로가기

2018

2018 카카오 코딩테스트 1차 프렌즈4블록 JS 문제풀이 🔗직접 문제 풀러가기 문제 지워지는 블록은 몇개인가? 2 x 2 형태로 같은 캐릭터가 붙어있으면 사라지면서 점수를 얻는다. 한 블록은 여러개의 2 x 2 에 포함될 수 있다. 블록이 지워진 뒤에는 위에서 아래로 블록들이 쏟아진다. 라이언(R), 무지(M), 어피치(A), 프로도(F), 네오(N), 튜브(T), 제이지(J), 콘(C) 문제풀이 function solution(m, n, board) { board = board.map(line => line.split('')); let pang = new Set(); while (true) { for (let i = 0; i + 1 < m; i++) { for (let j = 0; j + 1 < n; j++) { if (!board[i][j]) { conti.. 더보기
2018 카카오 코딩테스트 1차 셔틀버스 JS 문제풀이 🔗직접 문제 풀러가기 문제 콘이 셔틀을 타고 사무실로 갈 수 있는 정류장 도착 시각 중 제일 늦은 시각을 구하여라 셔틀은 09:00부터 총 n회 t분 간격으로 역에 도착하며, 하나의 셔틀에는 최대 m명의 승객이 탈 수 있다. 셔틀은 도착했을 때 도착한 순간에 대기열에 선 크루까지 포함해서 대기 순서대로 태우고 바로 출발한다. 예를 들어 09:00에 도착한 셔틀은 자리가 있다면 09:00에 줄을 선 크루도 탈 수 있다. 모든 크루는 잠을 자야 하므로 23:59에는 집에 돌아간다. 콘은 게으르기 때문에 같은 시각에 도착한 크루 중 대기열에서 제일 뒤에 선다. 입력값 셔틀 운행 횟수 n, 셔틀 운행 간격 t, 한 셔틀에 탈 수 있는 최대 크루 수 m, 크루가 대기열에 도착하는 시각을 모은 배열 timetabl.. 더보기
2018 카카오 코딩테스트 1차 다트 게임 JS 문제풀이 🔗직접 문제 풀러가기 문제 다트 게임은 총 3번의 기회로 구성된다. 각 기회마다 얻을 수 있는 점수는 0 - 10점. 점수와 함께 Single(S), Double(D), Triple(T) 영역이 존재한다. 각 영역 당첨 시 점수에서 1제곱, 2제곱, 3제곱으로 계산된다. 옵션으로 스타상(*) , 아차상(#)이 있다. 스타상(*) 당첨 시 해당 점수와 바로 전에 얻은 점수를 각 2배로 만든다. 아차상(#) 당첨 시 해당 점수는 마이너스된다. 스타상(*)은 첫 번째 기회에서도 나올 수 있다. 이 경우 첫 번째 스타상(*)의 점수만 2배가 된다. (예제 4번) 스타상(*)은 다른 스타상(*)의 효과와 중첩될 수 있다. 이 경우 중첩된 스타상(*) 점수는 4배가 된다. (예제 4번) 스타상(*)의 효과는 아차상.. 더보기
2018 카카오 코딩테스트 1차 캐시 JS 문제풀이 🔗직접 문제 풀러가기 입력 캐시크기 n과 도시이름 배열 cities를 입력받는다. 0 더보기
2018 카카오 코딩테스트 1차 비밀지도 JS 문제풀이 🔗직접 문제 풀러가기 문제 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 공백(" ") 또는벽("#") 두 종류로 이루어져 있다. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 지도1과 지도2라고 하자. 지도1 또는 지도2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 1과 지도 2에서 모두 공백인 부분은 전체 지도에서도 공백이다. 지도 1과 지도 2는 각각 정수 배열로 암호화되어 있다. 암호화된 배열은 지도의 각 가로줄에서 벽 부분을 1, 공백 부분을 0으로 부호화했을 때 얻어지는 이진수에 해당하는 값의 배열이다. 문제풀이 1. 각 배열의 i번째 정수를 이진수로 바꾸었을 떄 01 과 11라면 해독된 숫자는 이진수 11이다. 즉, OR 연산을 활용하면 된다. 2. .. 더보기