[프로그래머스 Lv.0] 숫자 찾기, n의 배수 고르기, 자릿수 더하기, OX퀴즈

blockzzie·2023년 4월 25일
0

프로그래머스

목록 보기
47/52

숫자 찾기

나의 답

function solution(num, k) { 
    num = (num + '').split('')
    let answer = ''
    for(i=0; i<num.length; i++){
        if(num[i] == k){
            return answer = i + 1
        } else answer = -1
    }
    return answer
}

indexOf 사용해서 풀고싶었는데 문법이 계속 오류 났다. 삼항 연산자에서 return을 못해주나? 근데 애초에 접근자체를 나중에 indexOf 쓰는데아니라 num 배열의 indexOf를 모두 설정하고 나중에 반환하는 방식으로 했어야함. includes를 사용하기도 함

n의 배수 고르기

나의 답

function solution(n, numlist) {
    var answer = [];
    numlist.map(c=> (c%n === 0) ? answer.push(c) : '')
    return answer;
}

map을 사용해서 if 문으로 필터링했는데, 그냥 처음부터 filter 내장객체 쓰면 되었다. numlist.filter(c => c % n === 0)

자릿수 더하기

나의 답

function solution(n) { 
    return [...(n+'')].reduce((acc, cur) => acc + Number(cur), 0)
}

대부분 toString을 쓴 뒤 split으로 만들어서 배열로 만들더라. 나의 답은 숫자에 + ''하면 문자열로 바뀌고 그걸 배열에 나머지 연산자로 넣어줌

OX퀴즈

나의 답

function solution(quiz) { 
    let answer = [];
    for(i =0; i<quiz.length; i++){
        var a = quiz[i].split(' ')
        if(a[1] == '-'){
            (a[0] - a[2] == a[4]) ? answer.push("O") : answer.push("X")
        } else if(a[1] == '+'){
            (Number(a[0]) + Number(a[2]) == a[4]) ?  answer.push("O") : answer.push("X")
        } 
    }
    return answer
} 

문제푸는 거다보니 풀리면 장땡이지만 eval() 사용하지 말래서 최대한 쪼개서 풀어보았다. 참고로 eval(string)은 문자열으로 작성된 수식을 숫자로 반환해주는 함수

profile
막무가내 코딩노트

0개의 댓글