#82612
🎄 Question ?
https://school.programmers.co.kr/learn/courses/30/lessons/82612
//82612
class Solution {
fun solution(price: Int, money: Int, count: Int): Long {
var answer: Long = -1
return answer
}
}
🧩 Thought Process
- use the for loop to find the summation of all the n times of rides. repeat count times!
for 문을 이용해서 총 가격 찾기 - Then subtract the sum by the money and return that as an answer
총 합계에서 money를 빼주고 그 값을 answer로 리턴하기 - Right before returning the answer, check the if the answer is negative using the if clause. If so, return -1.
answer 리턴 하기 직전에 if 문을 이용하여 answer이 음수인지 확인하고 음수이면 -1 리턴하기
class Solution {
fun solution(price: Int, money: Int, count: Int): Long {
var answer: Long = -1
var sum: Int = 0
for (i in 0 until count) {
sum += price*(i+1)
}
if (sum-money >= 0) {
answer = (sum-money).toLong()
} else {
answer = 0
}
return answer
}
}
이렇게 적었는데 틀렸다고 한다...
정확성 82 퍼센트.. 이럴때가 가장 막막하다.. 어쩌라는거지..:( 모가 문제인걸까... 어떤 테스트를 했는지를 알면 그걸 고치면 되는데.. 그것도 아니라;;
혹시나 해서 sum의 자료형을 Long으로 바꾸어주었다. sum이 모든 값을 더한거니까 훨 씬 큰 값을 가질거니까!!
행복 짜릿! 무려 11점 짜리 문제였다 :))
🎀 Answer
class Solution {
fun solution(price: Int, money: Int, count: Int): Long {
var answer: Long = -1
var sum: Long = 0
for (i in 0 until count) {
sum += price*(i+1)
}
if (sum-money >= 0) {
answer = (sum-money).toLong()
} else {
answer = 0
}
return answer
}
}
#2
class Solution {
fun solution(price: Int, money: Int, count: Int): Long {
return Math.max(count * (price.toLong() + price * count) / 2L - money, 0)
}
}
출처: https://yline.tistory.com/87 [Y_LINE's_Repository:티스토리]
다른 풀이 분석: 2L로 나누어줌으로서 Long형을 유지해주었다. max함수를 굳이 사용했어야하나 싶긴 하다...
🎁 Result
🏆 Comment
Long 자료형을 요구하는 문제는 처음 풀어봤다. 많이 배움:)
'Algorithm > Kotlin' 카테고리의 다른 글
[프로그래머스 • 코틀린] 최소직사각형 #86491 (1) | 2023.11.27 |
---|---|
[프로그래머스 • 코틀린] [유클린드 호제법]최대공약수와 최소공배수 #12940 (0) | 2023.11.20 |
[프로그래머스 • 코틀린] 직사각형 별찍기 #12969 (0) | 2023.11.18 |
[프로그래머스 • 코틀린] 행렬의 덧셈 #12950 (0) | 2023.11.17 |
[프로그래머스 • 코틀린] 문자열 다루기 기본 # 12918 (0) | 2023.11.07 |