본문 바로가기

programmers99

프로그래머스 코딩테스트 연습 Level 2 - n^2 배열 자르기 (JavaScript) 프로그래머스 코딩테스트 연습 Level 2 - n^2 배열 자르기 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 2 중, [n^2 배열 자르기] 문제를 JavaScript를 사용하여 해결해 보도록 하겠습니다. 문제 문제 설명 정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n행 n열 크기의 비어있는 2차원 배열을 만듭니다. i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다. 1행 1열부터 i행 i열까지의 영역 내의 모든 빈 칸을 숫자 i로 채웁니다. 1행, 2행, ..., n행을 잘라내어 모두 이어붙인 새로운 1차원 배열을 만듭니다. 새로운 1차원 배열을 arr이라 할 때, arr[left].. 2022. 7. 21.
프로그래머스 코딩테스트 연습 Level 2 - 멀리 뛰기 (JavaScript) 프로그래머스 코딩테스트 연습 Level 2 - 멀리 뛰기 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 2 중, [멀리 뛰기] 문제를 JavaScript를 사용하여 해결해 보도록 하겠습니다. 문제 문제 설명 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2칸) 의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 알아내, 여기에 1234567를 나눈 나머지를 리턴하는 함수, soluti.. 2022. 7. 20.
프로그래머스 코딩테스트 연습 Level 2 - 이진 변환 반복하기 (JavaScript) 프로그래머스 코딩테스트 연습 Level 2 - 이진 변환 반복하기 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 2 중, [이진 변환 반복하기] 문제를 JavaScript를 사용하여 해결해 보도록 하겠습니다. 문제 문제 설명 0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다. x의 모든 0을 제거합니다. x의 길이를 c라고 하면, x를 "c를 2진법으로 표현한 문자열"로 바꿉니다. 예를 들어, x = "0111010"이라면, x에 이진 변환을 가하면 x = "0111010" -> "1111" -> "100" 이 됩니다. 0과 1로 이루어진 문자열 s가 매개변수로 주어집니다. s가 "1"이 될 때까지 계속해서 s에 이진 변환을 가했을.. 2022. 7. 19.
프로그래머스 코딩테스트 연습 Level 2 - 숫자 블록 (JavaScript) 프로그래머스 코딩테스트 연습 Level 2 - 숫자 블록 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 2 중, [숫자 블록] 문제를 JavaScript를 사용하여 해결해 보도록 하겠습니다. 문제 문제 설명 그렙시에는 0으로 된 도로에 숫자 블록을 설치하기로 하였습니다. 숫자 블록의 규칙은 다음과 같습니다. 블록의 번호가 n 일 때, 가장 처음 블록은 n * 2번째 위치에 설치합니다. 그다음은 n * 3, 그다음은 n * 4, ...로 진행합니다.만약 기존에 블록이 깔려있는 자리라면 그 블록을빼고 새로운 블록으로 집어넣습니다. 예를 들어 1번 블록은 2,3,4,5, ... 인 위치에 우선 설치합니다. 그다음 2번 블록은 4,6,8,10, ... 인 위치에 설치.. 2022. 7. 18.
프로그래머스 코딩테스트 연습 Level 2 - 피보나치 수 (JavaScript) 프로그래머스 코딩테스트 연습 Level 2 - 피보나치 수 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 2 중, [피보나치 수] 문제를 JavaScript를 사용하여 해결해 보도록 하겠습니다. 문제 문제 설명 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = 2 + 3 = 5 와 같이 이어집니다. 2 이상의 n이 입력되었을 때, n번째 피보나치 수를 123.. 2022. 7. 17.
프로그래머스 코딩테스트 연습 Level 2 - 줄 서는 방법 (JavaScript) 프로그래머스 코딩테스트 연습 Level 2 - 줄 서는 방법 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 2 중, [줄 서는 방법] 문제를 JavaScript를 사용하여 해결해 보도록 하겠습니다. 문제 문제 설명 n명의 사람이 일렬로 줄을 서고 있습니다. n명의 사람들에게는 각각 1번부터 n번까지 번호가 매겨져 있습니다. n명이 사람을 줄을 서는 방법은 여러가지 방법이 있습니다. 예를 들어서 3명의 사람이 있다면 다음과 같이 6개의 방법이 있습니다. [1, 2, 3] [1, 3, 2] [2, 1, 3] [2, 3, 1] [3, 1, 2] [3, 2, 1] 사람의 수 n과, 자연수 k가 주어질 때, 사람을 나열 하는 방법을 사전 순으로 나열 했을 때, k번째 .. 2022. 7. 16.
프로그래머스 코딩테스트 연습 Level 2 - 타겟 넘버 (JavaScript) 프로그래머스 코딩테스트 연습 Level 2 - 타겟 넘버 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 2 중 깊이/너비 우선 탐색(DFS/BFS) 관련 문제인, [타겟 넘버] 문제를 JavaScript를 사용하여 해결해 보도록 하겠습니다. 문제 문제 설명 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘.. 2022. 7. 15.
프로그래머스 Level2 2022 KAKAO BLIND RECRUITMENT 문제 - 주차 요금 계산 (JavaScript) 프로그래머스 Level2 2022 KAKAO BLIND RECRUITMENT 문제 - 주차 요금 계산 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 2 중 2022 KAKAO BLIND RECRUITMENT 문제인, [주차 요금 계산] 문제를 JavaScript를 사용하여 해결해 보도록 하겠습니다. 문제 문제 설명 주차장의 요금표와 차량이 들어오고(입차) 나간(출차) 기록이 주어졌을 때, 차량별로 주차 요금을 계산하려고 합니다. 아래는 하나의 예시를 나타냅니다. 요금표 기본 시간(분) 기본 요금(원) 단위 시간(분) 단위 요금(원) 180 5000 10 600 입/출차 기록 시각(시:분) 차량 번호 내역 05:34 5961 입차 06:00 0000 입차 06:.. 2022. 6. 7.
프로그래머스 Level2 2022 KAKAO BLIND RECRUITMENT 문제 - k진수에서 소수 개수 구하기 (JavaScript) 프로그래머스 Level2 2022 KAKAO BLIND RECRUITMENT 문제 - k진수에서 소수 개수 구하기 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 2 중 2022 KAKAO BLIND RECRUITMENT 문제인, [k진수에서 소수 개수 구하기] 문제를 JavaScript를 사용하여 해결해 보도록 하겠습니다. 문제 문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소수 오른쪽에만 0이 있고 왼쪽에는 아무것도 없는 경우 0P처럼 소수 왼쪽에만 0이 있고 오른쪽에는 아무것도 없는 경우 P.. 2022. 6. 6.
프로그래머스 Level2 2019 KAKAO BLIND RECRUITMENT 문제 - 오픈채팅방 (JavaScript) 프로그래머스 Level2 2019 KAKAO BLIND RECRUITMENT 문제 - 오픈채팅방 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 2 중 2019 KAKAO BLIND RECRUITMENT 문제인, [오픈채팅방] 문제를 JavaScript를 사용하여 해결해 보도록 하겠습니다. 문제 문제 설명 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오픈 채팅방을 개설한 사람을 위해, 다양한 사람들이 들어오고, 나가는 것을 지켜볼 수 있는 관리자창을 만들기로 했다. 채팅방에 누군가 들어오면 다음 메시지가 출력된다. "[닉네임]님이 들어왔습.. 2022. 6. 3.
프로그래머스 Level 2 2020 KAKAO BLIND RECRUITMENT 문제 - 문자열 압축 (JavaScript) 프로그래머스 Level 2 2020 KAKAO BLIND RECRUITMENT 문제 - 문자열 압축 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 2 중 2020 KAKAO BLIND RECRUITMENT 문제인, [문자열 압축] 문제를 JavaScript를 사용하여 해결해 보도록 하겠습니다. 문제 문제 설명 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. 간단한 예로 "aa.. 2022. 6. 2.
프로그래머스 코딩테스트 연습 Level 2 - 땅따먹기 (JavaScript) 프로그래머스 코딩테스트 연습 Level 2 - 땅따먹기 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 2 중, [땅따먹기] 문제를 JavaScript를 사용하여 해결해 보도록 하겠습니다. 문제 문제 설명 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟으면서 내려와야 합니다. 단, 땅따먹기 게임에는 한 행씩 내려올 때, 같은 열을 연속해서 밟을 수 없는 특수 규칙이 있습니다. 예를 들면, | 1 | 2 | 3 | 5 | | 5 | 6 | 7 | 8 | | 4 | 3 | 2 | 1 | 로 땅이 주어졌다면, 1.. 2022. 6. 1.