[두 정수 사이의 합]
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의 대소관계를 처리해 작은 수는 left, 큰 수를 right로 선언한다
- 첫 번째 방법으로는 left는 증가하고 right는 감소하면서 answer를 누적해나간다
- left가 right보다 같거나 커진다면 반복을 종료한다
- 만약 left부터 right까지의 개수가 홀수개라면 -> left와 right 중 하나의 값을 answer에 더해준다
- 두 번째 방법으로는 for문을 left부터 right까지 돌리며 answer를 누적하는 방법이다
// 첫 번째 방법
import java.io.*;
import java.util.*;
class Solution {
public long solution(int a, int b) {
long answer = 0;
int left = a>=b ? b : a;
int right = a>=b ? a : b;
int size = right - left + 1;
while(left < right) {
answer += (left++ + right--);
}
if(size % 2 != 0)
answer += left;
return answer;
}
}
// 두 번째 방법
import java.io.*;
import java.util.*;
class Solution {
public long solution(int a, int b) {
long answer = 0;
int left = a>=b ? b : a;
int right = a>=b ? a : b;
for(int i=left; i<=right; ++i) {
answer += i;
}
return answer;
}
}
'Algorithm > Problem_프로그래머스' 카테고리의 다른 글
프로그래머스(문자열 내 p와 y의 개수) - Java (2) | 2020.05.20 |
---|---|
프로그래머스(문자열 내 마음대로 정렬하기) - Java (0) | 2020.05.20 |
프로그래머스(나누어 떨어지는 숫자 배열) - Java (0) | 2020.05.20 |
프로그래머스([3차] 파일명 정렬) - Java (0) | 2020.05.18 |
프로그래머스([3차] n진수 게임) - Java (0) | 2020.05.18 |