저장을 습관화

프로그래머스 LV.0 커피 심부름 본문

코딩 테스트/프로그래머스 - 자바스크립트

프로그래머스 LV.0 커피 심부름

ctrs 2023. 9. 28. 02:55

프로그래머스 LV.0 커피 심부름

https://school.programmers.co.kr/learn/courses/30/lessons/181837

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 문제 명

커피 심부름


2. 문제 설명

팀의 막내인 철수는 아메리카노와 카페 라테만 판매하는 카페에서 팀원들의 커피를 사려고 합니다. 아메리카노와 카페 라테의 가격은 차가운 것과 뜨거운 것 상관없이 각각 4500, 5000원입니다. 각 팀원에게 마실 메뉴를 적어달라고 하였고, 그 중에서 메뉴만 적은 팀원의 것은 차가운 것으로 통일하고 "아무거나"를 적은 팀원의 것은 차가운 아메리카노로 통일하기로 하였습니다.

 

각 직원이 적은 메뉴가 문자열 배열 order로 주어질 때, 카페에서 결제하게 될 금액을 return 하는 solution 함수를 작성해주세요. order의 원소는 아래의 것들만 들어오고, 각각의 의미는 다음과 같습니다.

order의 원소 의미
"iceamericano", "americanoice" 차카운 아메리카노
"hotamericano", "americanohot" 따뜻한 아메리카노
"icecafelatte", "cafelatteice" 차가운 카페라테
"hotcafelatte", "cafelattehot" 따뜻한 카페라테
"americano" 아메리카노
"cafelatte" 카페 라테
"anything" 아무거나


3. 제한 사항

- 1 ≤ order의 길이 ≤ 1,000


4. 예시

order result
["cafelatte", "americanoice", "hotcafelatte", "anything"] 19000
["americanoice", "americano", "iceamericano"] 13500


5. 기본 제공 코드

function solution(order) {
    var answer = 0;
    return answer;
}


6. 제출한 내 답

const solution = (order) => {
  return order.reduce((a, b) => {
    return b.includes("americano") || b.includes("anything")
      ? (a += 4500)
      : (a += 5000);
  }, 0);
};

 

6-2. VSC에 작성한 내용

const solution = (order) => {
  // 아메리카노 ice, hot 4500
  // 카페라테 ice, hot 5000
  // ice, hot 정하지 않았으면 ice
  // '아무거나'는 차가운 아메리카노(4500)

  return order.reduce((a, b) => {
    return b.includes("americano") || b.includes("anything")
      ? (a += 4500)
      : (a += 5000);
  }, 0);
};

// 테스트
console.log(
  solution(["cafelatte", "americanoice", "hotcafelatte", "anything"])
);
console.log(solution(["americanoice", "americano", "iceamericano"]));


7. 특이사항

없음


8. 다른 사람이 작성한 답

8-1. 좋아요를 가장 많이 받은 풀이법

const solution = (order) => order.reduce((acc, cur) => acc + (cur.includes('latte') ? 5000 : 4500), 0)

 

정답률 82% 문제 모두 해결

남은 문제 Lv.0 43개, Lv.1 52개, Lv2. 103개