a, b 의 대소관계가 정해져 있지 않다는 점...!
값이 같은 경우를 따로 빼고 그 외에는 for문을 돌리려고 해도 a..b 에서 성립이 안돼서 결괏값이 0이 나온다.
a가 큰 경우, b 가 큰 경우 각각 조건을 만들 수는 있지만 너무 길어져서 그렇게 만들기 싫은데 다른 방법 없을까?
생각해봐도 모르겠어서 그냥 If 조건문에 넣었다...ㅜㅜ
내 풀이
class Solution {
fun solution(a: Int, b: Int): Long {
var answer: Long = 0
if (a-b == 0) {
answer = a.toLong()
} else if (a-b < 0) {
for(i in a..b){
answer += i.toLong()
}
} else {
for(i in b..a){
answer += i.toLong()
}
}
return answer
}
}
작동은 잘 되지...되는데 이게 최선인가 😒😒
바보같은 점이 있다.
a 와 b 가 같은 경우 따로 안 빼도 되잖아 어차피 같은 값이면 사이의 정수가 없으니 다 더해도 그 값 그대로 나올텐데 뭐하러 조건을 따로 만들어서 더 길게 만들었나 😑 그치만 이미 제출했으니...
다른 사람 풀이
class Solution {
fun solution(a: Int, b: Int): Long {
val start : Long = (if(a>b) b else a).toLong()
val end : Long = (if(a>b) a else b).toLong()
return (start..end).sum()
}
}
간단하게 만든 사람들 대부분이 in 연산자를 이용해서 합을 구해냈다.
코드타카를 하면서 풀었던 문제들을 통해 새로운 문법이나 다르게 접근하는 방법들을 알게 됐는데 이것도 한 번 알게된다고 끝이 아니라 계속 반복해야지 내가 써먹을 수 있는 것 같다. 방금 나온 in 연산자도 분명 알고 있는 건데 문제에 어떻게 써먹기 위해 떠올릴 수 있는건 정말 다른 영역이다 🥲🥲 내일이면 3주치, 최소 15문제가 쌓여있는데 싹 다 다시 풀어봐야겠다.
'코딩테스트' 카테고리의 다른 글
프로그래머스 | 서울에서 김서방 찾기 (0) | 2023.12.26 |
---|---|
프로그래머스 | 콜라츠 추측 (1) | 2023.12.22 |
프로그래머스 하샤드 수 (0) | 2023.12.20 |
프로그래머스 정수 내림차순으로 배치하기 (0) | 2023.12.19 |
프로그래머스 정수 제곱근 판별 (0) | 2023.12.18 |