본문 바로가기
c++/프로그래머스

[프로그래머스] 커피 심부름(c++)

by ilp 2024. 2. 1.
반응형

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

 

프로그래머스

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

programmers.co.kr



#include <string>
#include <vector>

using namespace std;

int check(string order){
    if(order=="americano"||order=="iceamericano"||order=="americanoice"||order=="hotamericano"||order=="americanohot"||order=="anything"){
        return 4500;
    }
    else{
        return 5000;
    }
}


int solution(vector<string> order) {
    int answer = 0;
    
    for(int i=0;i<order.size();i++){
        answer+=check(order[i]);
    }
    
    return answer;
}

 

1. 'check' 함수
  • 문자열 'order'을 매개변수로 받는다.
    (주문 내용)
  • 주어진 'order'아메리카노 관련주문일때.
    ("americano", "iceamericano", "americanoice", "hotamericano", "americanohot", "anything")
    • 4500을 반환한다.
    • '모든 종류의 아메리카노' '아무거나' 는 모두 차가운 아메리카노로 통일했기 때문에 가격은 4500원이다.
  • 아메리카노 관련 주문이 아닐때
    • 5000을 반환한다.
    • '아메리카노' 주문이 아니면 '카페 라테'이고 그 가격은 5000원이다.

2. 'solution' 함수

  • 'answer': 최종 결과값을 저장하는 정수 변수이다. ( 초기값은 0이다.)
  • for문
    • vector 'order'의 모듣 요소를 순차적으로 순회한다.
    • 'i'는 0부터 'order.size()'까지 증가한다.
  • for문 안에서
    • 현재 문자열 'order[i]''check'함수에 전달하고
      반환값을 'answer'에 추가한다.
  • 결과
    • 'answer'을 반환한다.

 

 

참고

이 문제를 풀때 아메리카노 였을 떄를 기준으로 해서 if문을 작성하였는데

카페라테를 기준으로 if문을 만들어서 풀면 조금 더 간단 할 수도 있다.


반응형