커피 심부름

프로그래머스 문제풀이
강석우's avatar
Jun 10, 2024
커피 심부름

문제 : 커피 심부름

사용 메서드 :reduce(), includes()

풀이 과정 :

  1. 아메리카노와 카페 라테의 가격은 차가운 것과 뜨거운 것 상관없이 각각 4500, 5000원

    1. 단어에 아메리카노, 카페라떼가 포함되어있는지 확인만 하면 된다.

    2. if문을 사용해 아메리카노( 아무거나 )와 카페라떼로 구분하자.

  2. "아무거나"를 적은 팀원의 것은 차가운 아메리카노

    1. anything 또한 차가운 것으로 분류

  3. 총 금액이 필요하므로 return 값은 숫자형 하나

    1. reduce 를 사용하여 누적 계산을 이용하면 된다.

function solution(order) {
    let sum = 0
    sum = order.reduce((acc,cur)=>{
        if(cur.includes('americano')||cur.includes('anything')){
            return acc+4500
        }else{
            return acc+5000
        }
    },0)
    
    return sum 
}

문제 : ad 제거하기

사용 메서드 : filter(), includes()

풀이 과정 :

  1. 조건에 알맞는 원소를 순서를 유지한 배열로 return => filter()를 사용해 배열을 걸러주자.

  2. 조건을 설정하자 : ad 라는 부분 문자열만 포함하는 원소들을 return 해주기

function solution(strArr) {
    let answer =  strArr.filter((value)=>{
       return !value.includes('ad')
    })
    return answer;
}

문제 : 정수 찾기

사용 메서드 : includes()

풀이 과정 :

  1. 배열의 includes() 문을 통해 원소를 찾아주기

  2. 삼항연산자를 통해 1 || 0 return 해주기

function solution(num_list, n) {
    return num_list.includes(n) ? 1 :0;
}

문제 : 서울에서 김서방 찾기

사용 메서드 : indexOf()

풀이 과정 :

  1. 위치정보를 파악하는 메서드 indexOf() 를 활용한다.

function solution(seoul) {
    let location = seoul.indexOf('Kim')
    return `김서방은 ${location}에 있다`;
}
Share article

algorithm-basic