Front-End

프로그래머스 기초트레이닝 6일차 본문

알고리즘

프로그래머스 기초트레이닝 6일차

jeongsso 2023. 8. 14. 23:53

주말은 못자던 잠을 푹 자버렸슴니당..

오늘은 ㅜㅜ 강아지가 갑자기 아픈바람에(11살이라 .. ㅜㅜ )

병원다녀오고 해서 늦었습니다.

 

늦게라도 재공부하고 업로드!

 

 

문제 26.  첫 번째로 나오는 음수


문제 설명

정수 리스트 num_list가 주어질 때, 

첫 번째로 나오는 음수의 인덱스를 return하도록 solution 함수를 완성해주세요.

음수가 없다면 -1을 return합니다.

 

입출력 예

num_list result
[12, 4, 15, 46, 38, -2, 15] 5
[13, 22, 53, 24, 15, 6] -1

 

 

입출력 예 설명

5번 인덱스에서 음수가 처음 등장하므로 5를 return합니다.

음수가 없으므로 -1을 return합니다.

 

 

저의 풀이!

function solution(num_list) {
    return num_list.findIndex(v => v * -1 > 0);
}

console.log(solution([12, 4, 15, 46, 38, -2, 15]));

 

메모

indexOf 는 그냥 괄호안에 있는 매개변수가 배열안에 존재한다면 그 값의 인덱스를 내보내줌 (포함된게 아니고 그 값 자체)

find 는 조건에 해당하는 요소의 값을 출력 없으면 -1
findIndex 는 find 랑 비슷한데 조건에 해당하는 요소의 인덱스를 출력해줌 없으면 -1을 출력해준다.

 

for문으로도 가능하당.

function solution1(num_list) {
    for (let i = 0; i < num_list.length; i++) {
        return num_list[i] < 0 ? i : -1;
    }
}

 

 

 

문제 27.  수 조작하기


문제 설명

정수 n과 문자열 control이 주어집니다.

control은 "w", "a", "s", "d"의 4개의 문자로 이루어져 있으며,

control의 앞에서부터 순서대로 문자에 따라 n의 값을 바꿉니다.

"w" : n이 1 커집니다.
"s" : n이 1 작아집니다.
"d" : n이 10 커집니다.
"a" : n이 10 작아집니다.

 

위 규칙에 따라 n을 바꿨을 때 가장 마지막에 나오는 n의 값을 return 하는 solution 함수를 완성해 주세요.

 

 

입출력 예

n control result
0 "wsdawsdassw" -1

 

입출력 예 설명

수 n은 control에 따라 다음과 같은 순서로 변하게 됩니다.
0 → 1 → 0 → 10 → 0 → 1 → 0 → 10 → 0 → -1 → -2 → -1
따라서 -1을 return 합니다.

 

 

저의 풀이!

function solution(n, control) {
    let 나눈것 = control.split('');
    let = n;

    for (let i = 0; i < 나눈것.length; i++) {
        if (나눈것[i] === 'w') += 1;
        else if (나눈것[i] === 's') -= 1;    
        else if (나눈것[i] === 'd') += 10;
        else -= 10;
    }
    return ;
}

console.log(solution(0, 'wsdawsdassw'));

 

메모

이렇게 for 문으로 해도되고,

객체로 값을 확인해서 해도된다.

공부를 해서 이거는 추가로 다시 해볼게요!!

 

 

=> 

function solution1(n, control) {
    let answer = n;

    const A = {
        w: 1,
        s: -1,
        d: 10,
        a: -10,
    };

    control.split('').forEach(c => (answer += A[c]));
    return answer;
}

console.log(solution1(0, 'wsdawsdassw'));

 

와 저는 ... answer += A.c이런식으로해야하나 하고 못풀었었는데,

객체에 있는 w, s, d, a 가 A의 키이기도 하지만 인덱스로 작용합니다.

그래서 A[c]로 했을 때 제가 기대했던 계산이 가능한 부분인겁니다!!!!

 

 

 

Comments