05_12_프로그래머스01

이병관·2021년 5월 12일
0

같은 숫자는 싫어

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

간단한 문제다.
arr을 순회하면서 만일 현재 원소가 다음 원소랑 같지 않으면 답 배열 안에 해당 수를 넣어준다


문자열 다루기 기본

function solution(s) {
    let answer = true;
    let alength = [4,6]
    for(let i = 0 ; i<s.length ; i++){
        if(s.charCodeAt(i) <48 || s.charCodeAt(i) >57){
            answer = false;
        }
    }
    
    if(s.length === 4 && answer === true){
        return answer;
    } else if(s.length === 6 && answer === true){
        return answer;
    } else {
        answer = false;
    }
    
    return answer;
}

answer의 초기값을 true로 만들고
받은 현재 문자를 유니코드로 바꿔서 숫자의 범위가 아니면 바로 false로 리턴하고
길이가 틀린 순간 바로 false로 바꿔준다.


문자열 내 p와 y의 개수

function solution(s){
    var answer = true;
    let conpetition = s.toLowerCase();
    const po = 'p';
    const yo = 'y';
    let pcount = 0;
    let ycount = 0;
    for(let i = 0 ; i<conpetition.length ; i++){
        if(conpetition[i] === po){
            pcount++;
        } else if(conpetition[i] === yo){
            ycount++;
        }
    }
    if(pcount === ycount){
        answer = true;
    }
    else{
        answer = false;
    }
    return answer;
}

리팩토링을 안해서 코드가 매우 더럽다.
일단 문자열의 대소문자는 구분하지 않으니 문자열을 모두 소문자로 치환한 후
p와 y를 비교하여 count를 증가 시켜 나간 후 비교한다


짝수와 홀수

function solution(num) { 
    return num%2==0 ? "Even" : "Odd"; 
}

설명이 필요한가. 삼중연산자다


평균 구하기

function solution(arr) {
    return arr.reduce((a, b) => a + b) / arr.length;
}

reduce문으로 간단하게 풀어봣다


수박수박수박수박

function solution(n) {
    let result = ""
    for(let i = 1; i<=n; i++){
        if(i % 2 === 0){
            result += "박"
        }else{
            result += "수"
        }
    }
    return result
}

이것 역시 가벼운 문제다

profile
뜨겁고 매콤하고 화끈하게

0개의 댓글