프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/82612
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
내가 제출한 풀이
import Foundation
func solution(_ price:Int, _ money:Int, _ count:Int) -> Int64{
var usedMoney = 0
(1 ... count).map { usedMoney += price * $0 }
if money - usedMoney > 0 { return 0 }
else { return Int64(usedMoney - money) }
}
풀이 과정
놀이기구를 n번째 탈 때마다 가격 price가 n배수로 늘어난다. 이것이 가지고 있던 돈 money 보다 크다면 부족한 금액을 반환하고 아니라면 0을 반환하는 문제이다.
문제를 설명하는 말이 너무 정신없다. 입출력 예시가 없었다면 빠르게 이해하지 못했을 것 같다.
총 사용한 비용을 담기 위한 usedMoney 변수를 만들었다.
n번 타는 횟수는 count 이므로 일단 1...count 를 반복문으로 돌린다.
가격 Price 와 횟수 1...count를 전부 더해서 usedMoney에 더하기 할당 연산자로 담아주었다.
var usedMoney = 0
(1 ... count).map { usedMoney += price * $0 }
가지고있는 돈 money 에서 usedMoney를 빼면 money가 부족한지 아닌지 체크할 수 있다.
0과 비교 연산자를 사용해서 체크한 뒤 적절한 답을 계산해서 리턴한다.
if money - usedMoney > 0 { return 0 }
else { return Int64(usedMoney - money) }
반환값에 주의할 것!
'알고리즘 > Programmers' 카테고리의 다른 글
[Swift_Programmes] 행렬의 덧셈 (2) | 2023.11.30 |
---|---|
[Swift_Programmes] 문자열 다루기 기본 (0) | 2023.11.28 |
[Swift_Programmes] 문자열 내림차순으로 배치하기 (0) | 2023.11.28 |
[Swift_Programmes] 약수의 개수와 덧셈 🌟 (0) | 2023.11.27 |
[Swift_Programmes] 내적 (0) | 2023.11.27 |