본문 바로가기

Algorithm62

프로그래머스 코딩테스트 연습 Level 2 - 방문 길이 (JavaScript) 프로그래머스 코딩테스트 연습 Level 2 - 방문 길이 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 2 중, [방문 길이] 문제를 JavaScript를 사용하여 해결해 보도록 하겠습니다. 문제 문제 설명 게임 캐릭터를 4가지 명령어를 통해 움직이려 합니다. 명령어는 다음과 같습니다. U: 위쪽으로 한 칸 가기 D: 아래쪽으로 한 칸 가기 R: 오른쪽으로 한 칸 가기 L: 왼쪽으로 한 칸 가기 캐릭터는 좌표평면의 (0, 0) 위치에서 시작합니다. 좌표평면의 경계는 왼쪽 위(-5, 5), 왼쪽 아래(-5, -5), 오른쪽 위(5, 5), 오른쪽 아래(5, -5)로 이루어져 있습니다. 예를 들어, "ULURRDLLU"로 명령했다면 1번 명령어부터 7번 명령어까지.. 2022. 7. 23.
프로그래머스 코딩테스트 연습 Level 2 - 점프와 순간 이동 (JavaScript) 프로그래머스 코딩테스트 연습 Level 2 - 점프와 순간 이동 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 2 중, [점프와 순간 이동] 문제를 JavaScript를 사용하여 해결해 보도록 하겠습니다. 문제 문제 설명 OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈트는 건전지로 작동되는데, 순간이동을 하면 건전지 사용량이 줄지 않지만, 앞으로 K 칸을 점프하면 K 만큼의 건전지 사용량이 듭니다. 그러므로 아이언 슈트를 착용하고 이동할 때는 순간 이동을 하는 것이 더 효율적입니다. 아이언 슈트 구매자는 아이언.. 2022. 7. 22.
프로그래머스 코딩테스트 연습 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.