class Solution {
public long solution(int a, int b) {
long answer = 0;
if(b >= a){
for(int i = a; i <= b; i++){
answer = answer + i;
}
}
if(a > b){
for(int i = b; i <= a; i++){
answer = answer + i;
}
}
return answer;
}
}
쉽다고 생각하며 풀이를 해서 정답은 맞췄지만 다른 사람들의 풀이를 보니 조금 현타가 왔다.
class Solution {
public long solution(int a, int b) {
return sumAtoB(Math.min(a, b), Math.max(b, a));
}
private long sumAtoB(long a, long b) {
return (b - a + 1) * (a + b) / 2;
}
}
등차수열의 합공식을 이용한 풀이
class Solution {
public long solution(int a, int b) {
long answer = 0;
for (int i = ((a < b) ? a : b); i <= ((a < b) ? b : a); i++)
answer += i;
return answer;
}
}
for문 안에 삼항연산자를 사용해서 코드의 길이를 확 줄인 풀이...
더 노력하자!!!
출처: 프로그래머스 코딩 테스트 연습 https://programmers.co.kr/learn/challenges
'코딩테스트 > 프로그래머스 Lv1' 카테고리의 다른 글
수박수박수박수박수 ~~~ (0) | 2024.04.03 |
---|---|
나누어 떨어지는 숫자 배열 (0) | 2024.04.03 |
문자열 내 p와 y의 갯수 (0) | 2024.04.03 |
x만큼 간격이 있는 n개의 숫자 (0) | 2024.04.03 |
문자열을 정수로 바꾸기 (0) | 2024.04.03 |