본문 바로가기

프로그래머스

[코딩테스트] 231215_길이에 따른 연산, 특정한 문자를 대문자로 바꾸기, 정수 찾기, 숨어있는 숫자의 덧셈(1)

728x90

 

 

 


길이에 따른 연산

function solution(num_list) {
    
    if(num_list.length >= 11){
        var answer = 0;
        num_list.forEach((el)=>{
            answer += el
        })
    }
    else{
        var answer = 1;
        num_list.forEach((el)=>{
            answer *= el
        })
    }
    return answer
}

풀이 시간: 14분 13초

맘에 안든다.... 이렇게 짜고 싶지 않았는데 당장 생각나는 방법이 이 방법밖에 없었다... 그러다가 다른 사람의 풀이를 보고 reduce가 누산기 역할을 한다는 사실이 생각났다. 다음에 누산 작업을 하게 된다면 꼭 이 방법으로 풀이해봐야지!!

function solution(num_list) {
    return num_list.reduce((a,b)=> num_list.length > 10 ? a+b : a*b)
}

 

 

 


특정한 문자를 대문자로 바꾸기

function solution(my_string, alp) {
    return my_string.replaceAll(alp, alp.toUpperCase())
}

풀이 시간: 13분 08초

대문자로 변경하는 정규식이 있었던 것이 기억이나 찾아봐서 풀었다. 코테 너무 오랜만이라 replaceAll 또 까먹었다... 제발 기억해줘,,,제발,,,

 

 


정수 찾기

풀이 시간: 체크 X (아마... 2분..?)

function solution(num_list, n) {
    return num_list.indexOf(n) != -1? 1 : 0;
}

 

 

 


숨어있는 숫자의 덧셈(1)

function solution(my_string) {
    var answer = 0;
    my_string.split("").forEach((el)=>{
        if(isNaN(el)==false){
            answer += Number(el)
        }
    });
    return answer;
}

풀이 시간: 9분 39초

문자열에서 숫자를 판단할 수 있는 방법이 뭐가 있을까 고민하다가 isNaN 메서드가 숫자를 골라낼 수 있을 것이라고 생각해서 사용했다.

728x90