프로그래머스 코딩테스트



문제 1. 배열 원소의 길이


문자열 배열 strlist가 매개변수로 주어집니다. strlist 각 원소의 길이를 담은 배열을 retrun하도록 solution 함수를 완성해주세요.

function solution(strlist) {
    var answer = [];
    for (let i=0; i< strlist.length; i++){
        answer.push(strlist[i].length);
    }
    return answer;
}

설명: 자바스크립트에서 길이를 세는 메서드는 .length인데, 이것을 반복문과 결합하여 strlist[i]만큼 새로이 .push()를 해준다.


문제 2. 피자 나눠 먹기 (3)


머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 매개변수로 주어질 때, n명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.

function solution(slice, n) {
    var answer = 0;
    answer = Math.ceil(n/slice)
    return answer;
}

설명: 4일차에서 사용했던 Math.ceil 메서드를 그대로 사용한다. slice의 개수가 n을 충족시킬 만큼 필요하기 때문에, 분자를 n, 분모를 slice로 설정한다.


문제 3.최댓값 만들기


정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.

function solution(numbers) {
    var answer = 0;
    numbers.sort((a, b) => b - a);
    answer = numbers[0]*numbers[1];
    return answer;
}

설명: 각 배열마다 다 곱해보고 큰 값을 구할 수도 있지만, .sort()를 사용하여 배열을 한 번 정리하고 가장 큰값끼리만 곱하면 효율적으로 코드를 짤 수 있다.


문제 4 - 점의 위치 구하기


사분면은 한 평면을 x축과 y축을 기준으로 나눈 네 부분입니다. 사분면은 아래와 같이 1부터 4까지 번호를매깁니다. x 좌표 (x, y)를 차례대로 담은 정수 배열 dot이 매개변수로 주어집니다. 좌표 dot이 사분면 중 어디에 속하는지 1, 2, 3, 4 중 하나를 return 하도록 solution 함수를 완성해주세요.

function solution(dot) {
    var answer = 0;
    var x = dot[0];
    var y = dot[1];
    
    if(x > 0 && y > 0){
        answer = 1;
    } else if (x > 0 && y <0){
        answer = 4;
    } else if (x < 0 && y > 0){
        answer = 2;
    } else {
        answer = 3;
    }    
    return answer;
}

설명: if문을 사용하여 각각 좌표에 따른 값에 answer을 기입하는 형식을 취했다. 삼항 연산자로 바꾸어 넣을 수도 있다.


문제 5 - 특정 문자 제거하기


문자열 my_string과 문자 letter이 매개변수로 주어집니다. my_string에서 letter를 제거한 문자열을 return하도록 solution 함수를 완성해주세요.

function solution(my_string, letter) {
    var answer = '';
    answer = my_string.replace(new RegExp(letter, 'g'), '');
    
    return answer;
}

설명: replace는 첫 번째 문자를 지우는 메서드이다. 그러나 전체 문자열에서 특정 문자를 지우고 싶다면 new RegExp를 사용하여야 올바른 정규식이 된다고 할 수 있다.


Jeong

예술, 코딩, 그리고 삶