본문 바로가기

알고리즘43

Programmers 코딩테스트 연습 - 구명보트 (JavaScript) Programmers 프로그래머스 코딩테스트 연습 - 구명보트 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 2 중, 구명보트 문제를 JavaScript로 풀어보도록 하겠습니다. 문제 링크 : programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 문제 문제 설명 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트.. 2021. 1. 20.
Programmers 코딩테스트 연습 - 3진법 뒤집기 (JavaScript) Programmers 프로그래머스 코딩테스트 연습 - 3진법 뒤집기 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 1 월간 코드 챌린지 시즌 1 중, 3진법 뒤집기 문제를 JavaScript로 풀어보도록 하겠습니다. 문제 문제 설명 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수입니다. 입출력 예 nresult 45 7 125 229 입출력 예 설명 입출력 예 #1 답을 도출하는 과정은 다음과 같습니다. n (10진법)n (3진법)앞뒤 반전(3진법)10진법으로 표현 45 1200 00.. 2021. 1. 19.
Programmers 코딩테스트 연습 - 내적 (JavaScript) Programmers 프로그래머스 코딩테스트 연습 - 내적 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 1 월간 코드 챌린지 시즌 1 중 내적 문제를 JavaScript로 풀어보도록 하겠습니다. 문제 문제 설명 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이) 제한사항 a, b의 길이는 1 이상 1,000 이하입니다. a, b의 모든 수는 -1,000 이상 1,000 이하입니다. 입출력 예 a b result [1,2,3,4] [-.. 2021. 1. 18.
Programmers 코딩테스트 연습 - 가장 큰 수 (JavaScript) Programmers 프로그래머스 코딩테스트 연습 - 가장 큰 수 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 2 중 가장 큰 수 문제를 JavaScript로 풀어보도록 하겠습니다. 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 n.. 2020. 10. 17.
Programmers 월간 코드 챌린지 시즌1 - 두 개 뽑아서 더하기 (JavaScript) Programmers 월간 코드 챌린지 시즌1 - 두 개 뽑아서 더하기 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 1 중 월간 코드 챌린지 시즌1 문제인 두 개 뽑아서 더하기 문제를 JavaScript를 사용하여 문제를 풀어보도록 하겠습니다. 문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. 입출력 예 numbers result [2,1,3,4,1] [2,3,4,5,6.. 2020. 9. 17.
Programmers 코딩테스트 연습 - 약수의 합 (JavaScript) Programmers 코딩테스트 연습 - 약수의 합 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 1 중 약수의 합 문제를 JavaScript를 사용하여 문제를 풀어보도록 하겠습니다. 문제 설명 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다. 입출력 예 #2 5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다. 작성한 답 solution.js function solution(n) { var answe.. 2020. 9. 16.
Programmers 코딩테스트 연습 - 스킬트리 (JavaScript) Programmers 코딩테스트 연습 - 스킬트리 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 2 중 스킬트리 문제를 JavaScript를 사용하여 문제를 풀어보도록 하겠습니다. 문제 설명 선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다. 예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다. 위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다. 따라서 스파크 → 힐링 → 라이트닝 볼트 → 썬더와 같은 스킬트리는 가능하지만, 썬더 → 스파크나 라이트닝 볼트 → 스파크 → 힐링 → 썬더와 같은 스.. 2020. 9. 15.
Programmers 코딩테스트 연습 - 최대공약수와 최소공배수 (JavaScript) Programmers 코딩테스트 연습 - 최대공약수와 최소공배수 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 1 중 최대공약수와 최소공배수 문제를 JavaScript를 사용하여 문제를 풀어보도록 하겠습니다. 문제 설명 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. 제한 사항 두 수는 1이상 1000000이하의 자연수입니다. 입출력 예 n m return 3 12 [3, 12] 2 5 [1, 10] 입.. 2020. 9. 14.
Programmers 2018 KAKAO BLIND RECRUITMENT - [1차] 비밀지도 (JavaScript) Programmers 2018 KAKAO BLIND RECRUITMENT - [1차] 비밀지도 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 1 중 2018 KAKAO BLIND RECRUITMENT 문제인 [1차] 비밀지도 문제를 JavaScript를 사용하여 문제를 풀어보도록 하겠습니다. 문제 설명 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 공백(" ) 또는벽(#") 두 종류로 이루어져 있다. 전체 지도는.. 2020. 9. 13.
Programmers 2018 KAKAO BLIND RECRUITMENT - [1차] 다트 게임 (JavaScript) Programmers 2018 KAKAO BLIND RECRUITMENT - [1차] 다트 게임 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 1 중 2018 KAKAO BLIND RECRUITMENT 문제인 [1차] 다트 게임 문제를 JavaScript를 사용하여 문제를 풀어보도록 하겠습니다. 문제 설명 카카오톡에 뜬 네 번째 별! 심심할 땐? 카카오톡 게임별~ 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 .. 2020. 9. 12.
Programmers 2020 카카오 개발자 인턴십 문제 - 키패드 누르기 (JavaScript) Programmers 2020 카카오 개발자 인턴십 문제 - 키패드 누르기 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 1 중 2020 카카오 인턴십 문제인 키패드 누르기 문제를 JavaScript를 사용하여 문제를 풀어보도록 하겠습니다. 문제 설명 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 .. 2020. 9. 10.
Programmers 2019 카카오 개발자 겨울 인턴십 문제 - 크레인 인형뽑기 게임 문제 (JavaScript) Programmers 2019 카카오 개발자 겨울 인턴십 문제 - 크레인 인형뽑기 게임 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 1 중 2019 카카오 개발자 겨울 인턴십 문제인 크레인 인형뽑기 게임 문제를 JavaScript를 사용하여 문제를 풀어보도록 하겠습니다. 문제 설명 게임개발자인 죠르디는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. 죠르디는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 1 x 1 크기의 칸들로 이루어진 N x N 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 5 x 5 크기의 예시입니다). 각 격자 칸에는 다양한 인.. 2020. 9. 7.