문제 설명
팀의 막내인 철수는 아메리카노와 카페 라테만 판매하는 카페에서 팀원들의 커피를 사려고 합니다. 아메리카노와 카페 라테의 가격은 차가운 것과 뜨거운 것 상관없이 각각 4500, 5000원입니다. 각 팀원에게 마실 메뉴를 적어달라고 하였고, 그 중에서 메뉴만 적은 팀원의 것은 차가운 것으로 통일하고 "아무거나"를 적은 팀원의 것은 차가운 아메리카노로 통일하기로 하였습니다.
각 직원이 적은 메뉴가 문자열 배열 order로 주어질 때, 카페에서 결제하게 될 금액을 return 하는 solution 함수를 작성해주세요. order의 원소는 아래의 것들만 들어오고, 각각의 의미는 다음과 같습니다.
풀이
class Solution {
public int solution(String[] order) {
int answer = 0;
for(String str:order) {
if(str.contains("cafelatte")) {
answer+=5000;
} else {
answer+=4500;
}
}
return answer;
}
}
풀이해설
1) 향상된 for문
:for(자료형 변수명 : 배열명){문장}
:코드 길이를 줄이기 위해 향상된 for문을 사용
2) contains()
:contains()는 문자열에 특정 문자열이 포함되어 있는지 확인하는 함수이다.(대소문자 구분o)
:true, false를 반환한다.
anything과 americano가 아니면 latte 5000원이기 때문에 코드를 줄이기 위해 latter를 사용했다.
contains()함수를 사용하지 않으면 원소를 하나하나 입력해야하는 노동을 해야하고, 코드가 굉장히 길어진다.