프로그래머스 코딩테스트 연습 입문단계 '양꼬치' 문제입니다.
https://school.programmers.co.kr/learn/courses/30/lessons/120830
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
❓문제 설명
머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 n과 k가 매개변수로 주어졌을 때, 양꼬치 n인분과 음료수 k개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요.
⚠️ 제한사항 및 입출력 예
- 0 < n < 1,000
- n / 10 ≤ k < 1,000
- 서비스로 받은 음료수는 모두 마십니다.
n (입력) | k (입력) | result (출력) |
10 | 3 | 124,0 00 |
64 | 6 | 768,000 |
✏️직접 구현한 코드
class Solution {
public int solution(int n, int k) {
int lamb = n * 12000;
int drink = k * 2000;
if(k > 0) {
drink -= (n/10) * 2000;
}
return lamb + drink;
}
}
🗣️ 코드 설명
- 각각 lamb, drink 변수에 음료수 서비스를 제공하지 않은 양꼬치 가격과 음료수 가격을 저장합니다.
- 음료수를 시켰으면(k > 0) 음료수 가격에서 10의 단위의 인분만큼의 음료수 가격을 빼줍니다.
- 양꼬치 가격과 최종적으로 계산된 음료수 가격을 더한 값을 리턴합니다.
🔥다른 사람의 코드
class Solution {
public int solution(int n, int k) {
return n * 12000 + k * 2000 - (n / 10 * 2000);
}
}
- 이 문제를 풀 때 어떻게 하면 메모리를 가장 절약하는 방법으로 코드를 구현할지를 아주아주 고민하며 풀었는데, 이 사람은 리턴문 한 줄로 끝내버려서 정말 신기했다.
- 나는 음료수를 하나라도 시켜야 음료수를 무료로 준다고 생각하고 풀었다. 하지만 이 사람의 코드를 보고 다시 생각해보니 음료수를 시키지 않아도 10인분을 시키면 음료수를 줘야함을 깨달았다. 내 코드의 if문은 필요가 없었군... 문제를 풀 때 정말 꼼꼼히 생각하며 풀어야겠다.
'코딩테스트 회고록 > 코테_Java' 카테고리의 다른 글
[JAVA] 프로그래머스 - 배열의 유사도 (0) | 2023.02.15 |
---|---|
[JAVA] 프로그래머스 - 배열 뒤집기 (0) | 2023.02.15 |
[JAVA] 프로그래머스 - 배열의 평균값 (0) | 2023.02.14 |
[JAVA] 프로그래머스 - 중복된 숫자 개수 (0) | 2023.02.10 |
[JAVA] 프로그래머스 - 세균 증식 (0) | 2023.02.04 |