Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- bus
- 프로세스
- 버퍼
- Components
- 스풀
- 계층형 구조 커널
- 단일형 구조 커널
- 운영체제
- 하버드구조
- 인터럽트
- 멀티프로세스
- 앱개발
- 코딩
- 커널
- 부트캠프
- 마이크로 커널
- 캐시
- Swift
- API
- 폰노이만
- 스레드
- 폰노이만구조
- 폴링
- IODevice
- 컴퓨터구조
- closure
- 야곰아카데미
- 멀티스레드
- kernel
- sdk
Archives
- Today
- Total
생각, 고민, 문제해결의 기록
[프로그래머스] Lv. 0 - 할인가격 구하기 본문
문제 설명
머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다.
구매한 옷의 가격 price가 주어질 때, 지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 10 ≤ price ≤ 1,000,000
- price는 10원 단위로(1의 자리가 0) 주어집니다.
- 소수점 이하를 버린 정수를 return합니다.
입출력 예
price | result |
150,000 | 142,500 |
580,000 | 464,000 |
입출력 예 #1
- 150,000원에서 5%를 할인한 142,500원을 return 합니다.
입출력 예 #2
- 580,000원에서 20%를 할인한 464,000원을 return 합니다.
나의 풀이
func solution(_ price:Int) -> Int {
switch price {
case 100000..<300000:
return Int(Double(price) * 0.95)
case 300000..<500000:
return Int(Double(price) * 0.9)
case 500000...:
return Int(Double(price) * 0.8)
default:
return price
}
}
처음에 if문을 사용해 코드를 짜다가 테스트케이스에서 자꾸 통과가 되지 않길래 switch문으로 바꿨더니 통과되었고 switch문이 가격 범위도 훨씬 직관적으로 보였다.
할인율 계산은 처음에 5% -> 0.05 이런식으로 바꿨는데 그렇게 되면 바꿔준 소수에 원가를 곱하고 또 그값을 원가로 빼고..... 암튼 계산이 길어지고 코드도 더 길어진다. 1에서 바꿔준 소수만큼 빼주고 그 값을 바로 값에 곱하면 할인가격을 알 수 있는걸 알았다!!!
같은 타입끼리 연산해야하기 때문에 Double(price)도 필수.
'알고리즘 문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv.0 - 두 배열의 같은 요소의 갯수는? (0) | 2023.01.31 |
---|---|
[프로그래머스] Lv.0 - 순서쌍의 개수 (feat. 약수 구하기) (0) | 2023.01.30 |
[프로그래머스] Lv.0 - 배열의 중앙값 구하기 (0) | 2023.01.29 |
[프로그래머스] Lv. 0 - 배열 값들 2배 만들기 (0) | 2023.01.29 |
[프로그래머스] Lv.0 중복된 숫자 개수 (0) | 2023.01.27 |