-
두 정수 사이의 합 구하기알고리즘/프로그래머스 2020. 8. 2. 22:55
문제 :
나의 해답 :
class Solution { public long solution(int a, int b) { long answer = 0; int max = Math.max(a,b); int min = Math.min(a,b); for(int i=min; i<=max; i++){ answer+=i; } return answer; } }
Math.min(), Math.max()의 패키지가 생각나지 않아 삼항연산자를 사용해야하나 고민했는뎅, 그냥 java.lang 이여서 써도 상관 없었넹
다른 사람 풀이중 인상깊은게 있었다
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; } }
등차수열을 사용하여 문제를 풀이 했는데, 등차수열 너무 오랜만이라 개념도 기억이 안나 정리해보자!
첫째항이 a, 마지막 항이 l일때 n항까지의 합
Sn = n(a+l)/2
출처 : https://programmers.co.kr/learn/courses/30/lessons/12912