티스토리 뷰

728x90
반응형

문제 링크

두 정수 사이의 합

https://programmers.co.kr/learn/courses/30/lessons/12912

 

코딩테스트 연습 - 두 정수 사이의 합

두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우

programmers.co.kr

문제 설명

두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.

 

제한 조건
  • a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
  • a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
  • a와 b의 대소관계는 정해져있지 않습니다.
입출력 예시

 

a b return
3 5 12
3 3 3
5 3 12

 


  풀이 방법

해당 문제는 두 수를 1씩 증가하는 등차수열로 생각하고 생각하면 쉽다.

  • 등차수열 합 공식은 n *(첫째항 + 마지막 항) /2이다.
  • 문제에 적용시켜보면 | a-b | * ( a + b ) /2 하면 답이 나온다.
풀이
class Solution {
    public long solution(int a, int b) {
        return (Math.abs(a-b)+1) *(long)(a+b)/2;
    }
}

 

  • 중간에 long타입으로 캐스팅해주지 않으면 int값을 벗어나기 때문에 틀린다.
  • 반복문을 통해서 풀어도 되지만 시간복잡도가 굉장히 늘어난다.

728x90
반응형
250x250
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함