이예지(프로그래머스)
문제 1.
단어가 공백 한 개 이상으로 구분되어 있는 문자열 my_string이 매개변수로 주어질 때, my_string에 나온 단어를 앞에서부터 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
입출력 예
my_string result
" i love you" ["i", "love", "you"]
" programmers " ["programmers"]
HTML
복사
풀이 1-1.
function solution(my_string) {
var answer = [];
let new_list = my_string.split(" ");
new_list.forEach((item)=>{
if(item !==""){
answer.push(item)
}
})
return answer;
}
풀이 1-2.
function solution(my_string){
return my_string.split(" ").filter(item=> item !== "");
}
JavaScript
복사
조원영(프로그래머스)
문제
문제 설명
당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.
홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다.
첫 번째(3번), 두 번째(1번) 폰켓몬을 선택
첫 번째(3번), 세 번째(2번) 폰켓몬을 선택
첫 번째(3번), 네 번째(3번) 폰켓몬을 선택
두 번째(1번), 세 번째(2번) 폰켓몬을 선택
두 번째(1번), 네 번째(3번) 폰켓몬을 선택
세 번째(2번), 네 번째(3번) 폰켓몬을 선택
이때, 첫 번째(3번) 폰켓몬과 네 번째(3번) 폰켓몬을 선택하는 방법은 한 종류(3번 폰켓몬 두 마리)의 폰켓몬만 가질 수 있지만, 다른 방법들은 모두 두 종류의 폰켓몬을 가질 수 있습니다. 따라서 위 예시에서 가질 수 있는 폰켓몬 종류 수의 최댓값은 2가 됩니다.
당신은 최대한 다양한 종류의 폰켓몬을 가지길 원하기 때문에, 최대한 많은 종류의 폰켓몬을 포함해서 N/2마리를 선택하려 합니다. N마리 폰켓몬의 종류 번호가 담긴 배열 nums가 매개변수로 주어질 때, N/2마리의 폰켓몬을 선택하는 방법 중, 가장 많은 종류의 폰켓몬을 선택하는 방법을 찾아, 그때의 폰켓몬 종류 번호의 개수를 return 하도록 solution 함수를 완성해주세요.
입출력 예
nums result
[3,1,2,3] 2
[3,3,3,2,2,4] 3
[3,3,3,2,2,2] 2
문제 3줄 요약
nums 배열 길이의 반만큼 숫자 가져갈수 있는데
최대한 다른 숫자로 가져가고싶음
최대한 다양하게 가져갔을 때, 몇가지 종류의 숫자로 가져갈 수 있을까?
JavaScript
복사
풀이
function solution(nums) {
const set = new Set(nums);
const temp = [...set];
// temp에는 nums에서 중복 제거한 숫자들 배열
// nums길이/2개의 최대한 다양한 종류의 숫자를 선택
// 만약 중복 제거한 숫자들 배열(temp) 길이가 N/2보다 크면
// 아무리 종류가 많아도 최대 N/2 종류밖에 못가져감
if (temp.length >= nums.length / 2) {
return nums.length / 2;
}
// 만약 중복 제거한 숫자 배열 길이가 N/2보다 작으면
// 아무리 다양한 종류로 가져가도 최대 temp.length 종류 밖에 못가져감
return temp.length;
}
JavaScript
복사
유하은(프로그래머스)
문1) n 번째 원소부터
문제 설명
정수 리스트 num_list와 정수 n이 주어질 때, n 번째 원소부터 마지막 원소까지의 모든 원소를 담은 리스트를 return하도록 solution 함수를 완성해주세요.
제한사항
2 ≤ num_list의 길이 ≤ 30
1 ≤ num_list의 원소 ≤ 9
1 ≤ n ≤ num_list의 길이
입출력 예
num_list n result
[2, 1, 6] 3 [6]
[5, 2, 1, 7, 5] 2 [2, 1, 7, 5]
풀1)
function solution(num_list, n) {
let answer = num_list.slice(n-1);
return answer;
}
JavaScript
복사
문2) 정수 찾기
문제 설명
정수 리스트 num_list와 찾으려는 정수 n이 주어질 때, num_list안에 n이 있으면 1을 없으면 0을 return하도록 solution 함수를 완성해주세요.
제한사항
3 ≤ num_list의 길이 ≤ 100
1 ≤ num_list의 원소 ≤ 100
1 ≤ n ≤ 100
입출력 예
num_list n result
[1, 2, 3, 4, 5] 3 1
[15, 98, 23, 2, 15] 20 0
풀2)
function solution(num_list, n) {
let answer = num_list.indexOf(n);
return answer === -1 ? 0 : 1 ;
}
미정님 코멘트
function solution(num_list, n) {
return num_list.indexOf(n) === -1 ? 0 : 1 ;
}
JavaScript
복사
문3) 문자열의 앞의 글자
문제 설명
문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string의 앞의 n글자로 이루어진 문자열을 return 하는 solution 함수를 작성해 주세요.
제한사항
my_string은 숫자와 알파벳으로 이루어져 있습니다.
1 ≤ my_string의 길이 ≤ 1,000
1 ≤ n ≤ my_string의 길이
입출력 예
my_string n result
"ProgrammerS123" 11 "ProgrammerS"
"He110W0r1d" 5 "He110"
풀3)
function solution(my_string, n) {
let answer = my_string;
return answer.slice(0,n);
}
JavaScript
복사
손수민(프로그래머스)
문제
사분면은 한 평면을 x축과 y축을 기준으로 나눈 네 부분입니다. 사분면은 아래와 같이 1부터 4까지 번호를매깁니다.
x 좌표와 y 좌표가 모두 양수이면 제1사분면에 속합니다.
x 좌표가 음수, y 좌표가 양수이면 제2사분면에 속합니다.
x 좌표와 y 좌표가 모두 음수이면 제3사분면에 속합니다.
x 좌표가 양수, y 좌표가 음수이면 제4사분면에 속합니다.
x 좌표 (x, y)를 차례대로 담은 정수 배열 dot이 매개변수로 주어집니다. 좌표 dot이 사분면 중 어디에 속하는지 1, 2, 3, 4 중 하나를 return 하도록 solution 함수를 완성해주세요.
JavaScript
복사
풀이
function solution(dot) {
if(dot[0]>0&&dot[1]>0){
return 1
}else if(dot[0]<0&&dot[1]>0){
return 2
}else if(dot[0]<0&&dot[1]<0){
return 3
}else return 4
}
JavaScript
복사
김미정(프로그래머스)
영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.
JavaScript
복사
풀이 1.
function solution(my_string) {
const arr = ['a', 'e', 'i', 'o', 'u'];
return my_string.split('').filter(v => !arr.includes(v)).join('');
}
<예지님 커멘트>
function solution(my_string) {
const arr = ['a', 'e', 'i', 'o', 'u'];
return [...my_string].filter(v => !arr.includes(v)).join('');
}
JavaScript
복사