본문 바로가기

두 정수 사이의 합

programmers code review/_step1 2021. 8. 30.
728x90

프로그래머스 Java 1단계 두 정수 사이의 합 문제입니다.


문제 설명

두 정수 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

 

문제 해결 방법

① a와 b의 크기 비교

    ⑴ a == b ▶ a 또는 b 반환(코드에서는 a 반환)

    ⑵ a  != b ▶ 등차가 1인 수열의 합 반환


더보기
class Solution {
    public long solution(int a, int b) {
        return a == b ? a : (Math.abs(a - b) + 1) * (long) (a + b) / 2;
    }
}

 

등차수열의 합 공식

등차수열의 합 공식은 다음과 같습니다. 공식 유도 과정은 생략하겠습니다. 궁금하신 분들을 위해 게시글의 링크부분에 올려놓도록 하겠습니다.


n = 횟수, a₁ = 초항, an = n번째 항


※ 삼항연산자

① 의 반환값은 삼항연산자로 값을 정하게 되는데, if/else 문과 매우 흡사하여 코드가 간결해지는데에 도움이 됩니다.

삼항연산자 사용법은 다음과 같으며, 참 또는 거짓의 값을 반드시 반환하는 것이 if/else 문과의 차이점입니다.

Condition ? TRUE : FALSE

if/else 문에 비해 구문이 간단하다해서 속도가 빠른 것은 아닙니다.

 

※ 위 코드는 해결 방법 중 한가지이며 더 효율적인 코드가 있을 수 있습니다.

 

문제 풀어보기 ▶ https://programmers.co.kr/learn/courses/30/lessons/12912?language=java
 

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

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

programmers.co.kr

 

등차수열 합 공식 유도 과정 보기 ▶ https://ko.wikipedia.org/wiki/등차수열
 

등차수열 - 위키백과, 우리 모두의 백과사전

수학에서, 등차수열(等差數列, 문화어: 같은차수렬, 영어: arithmetic progression, AP 또는 arithmetic sequence)은 연속하는 두 항의 차이가 모두 일정한 수열을 뜻한다. 예를 들어 1, 3, 5, 7, 9, ...은 등차수열

ko.wikipedia.org

 

 

 

댓글