lv0~1 어렵네용..

Parktaehoon·2022년 10월 9일
0

코딩테스트 문제를 풀어보기 어느덧 2일차.
생각보다 어렵다ㅎㅎ..

q1.

정수 n이 매개변수로 주어질 때, n의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.

약수를 구하는 문제
내가 짠 코드

function solution(n) {
    let answer=[] 
    for(let i = 0; i <= n; i++){
        if(n%i === 0){
            answer.push(i)
        }
    }
    // 약수를 구하는 공식 같은거라 딱히 부가 설명할 게 없다.
    return answer
}

q2.

머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다. 머쓱이네 반 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때, 머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요.

내가 처음 짠 코드

function solution(array, height) {
    var answer = [];
    // 반 친구들의 키 배열(정수) array
    // 머쓰기의 키 height 
    // 머쓰기보다 키 큰 사람 수! return
    answer = array.filter((n) => if(n>height)answer.push(n)).length
    
    return answer;
}

아직 개념이 조금 부족 한거 같다. filter 함수 안에 if문을 또 사용하였다.

if문에서 오류가 나서 다시 손 본 코드는 아래와 같다.

 function solution(array, height) {
    var answer = [];
    // 반 친구들의 키 배열(정수) array
    // 머쓰기의 키 height 
    // 머쓰기보다 키 큰 사람 수! return
    answer = array.filter((n) => n>height).length
    
    return answer;
}

filter은 배열을 반환하기 때문에 위와 같이 간단하게 코드를 짤 수 있었다.

q3.

정수가 들어 있는 배열 num_list가 매개변수로 주어집니다. num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution 함수를 완성해주세요.

reverse메서드를 모를 때
1차 도전 split 을 이용하려했으나, 정수가 들어 있는 배열이라 돌아가지 않음

2차 도전 for문으로

function solution(num_list) {
    var answer = [];
    for(let i=num_list.length-1;// 배열의 마지막 i >= 0; i-- // 뒤집기) {
      answer.push(num_list[i]);
    }
    return answer;
}

reverse메서드를 알고 난 후

function solution(num_list) {
    var answer = [];
    answer = num_list.reverse()
    return answer;
}

메서드 하나로 훨씬 간단하게 출력할 수 있었다.

q4.

머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 n과 k가 매개변수로 주어졌을 때, 양꼬치 n인분과 음료수 k개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요.

내가 구성한 코드

function solution(n, k) {
    var answer = 0;
    // n = 양꼬치 인분
    // k = 음료수 개수
    return n * 12000 + (k - Math.floor(n / 10)) * 2000;
}

결국 답은 찾았지만, 뭔가 계속 문제 자체를 어렵게 접근하는 거 같다.
음 계속 하는 수 밖에 없을거같다

q5. 문자열 뒤집기

문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.

문자열을 받으면 우선 뒤집기위해 배열로 변환,
스프레드 ... 활용 -> ...
reverse, 문자열로 반환하는 join 활용

function solution(my_string) {
    var answer = '';
    answer = [...my_string].reverse().join("");
    return answer;
}
profile
스스로 공부하는 내용 정리합니다.

0개의 댓글