알고리즘
프로그래머스 - 두 정수 사이의 합
Heidong
2022. 6. 11. 14:59
반응형
내 풀이
package algorithm_Lv01;
public class P_27 {
public long solution(int a, int b) {
long answer = a;
int c = 0;
if(a == b) {
return a;
} else {
if(a > b) {
c = a; // 큰수
a = b; // a가 작은수
b = c; // b에 큰수
answer = a;
}
}
for(int i=a; i<b; i++) {
answer += i+1;
}
return answer;
}
public static void main(String[] args) {
// 두 정수 사이의 합
P_27 p = new P_27();
int a = 5;
int b = 3;
System.out.println(p.solution(a, b));
}
}
a가 작은수 일경우는 간단하지만
a가 더 큰 수 일 경우 a와 b의 값 치환을 했다.
Math 함수의 min(), max() 함수를 이용한다면 더 간단하게 표현이 가능하다.
다른 사람 풀이
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;
}
}
등차수열의 합을 이용한 풀이 방식
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=junhyuk7272&logNo=221247061276
반응형