[Java] 자바 알고리즘, "두 정수 사이의 합"
- 알고리즘 문제/[Java] 알고리즘
- 2019. 2. 6. 02:59
두 정수 사이의 합
문제 설명
두 정수 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 2 3 4 5 6 7 8 9 10 11 12 13 14 | class Solution { public long solution(int a, int b) { long answer = 0; if(a>b){ int temp = b; b=a; a=temp; } for(int i = a; i<=b; i++){ answer+=i; } return answer; } } | cs |
간단히 a와 b의 크기를 맞추고( 큰 숫자가 b로 가도록 ) for문을 돌려 (a부터 b까지) answer에 더해 담는다.
다른사람의 풀이
1 2 3 4 5 6 7 8 9 | class Solution { public long solution(int a, int b) { long answer = 0; for (int i = ((a < b) ? a : b); i <= ((a < b) ? b : a); i++) answer += i; return answer; } } | cs |
- 이분같은 경우에는 삼항 연산자를 써서 제가 사용한 알고리즘을 굳이 한줄로 나타내신 경우 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | class Solution { public long solution(int a, int b) { long answer = 0; int min; int max; if(a>b){ max=a; min=b; }else{ max=b; min=a; } for(long i =min;i<=max;i++){ answer += i; } return answer; } } | cs |
- 이분 같은 경우는 저랑 거의 똑같죠. 변수명만 다르고요. 하지만 분명한 차이점이 있습니다. 변수명이 가독성이 매우 뛰어나다는 것입니다. 변수명 하나만 보고도 a가 큰 값이었는지 b가 큰값이었는지 헷갈일 필요가 전혀 없게 만들었고, 해당 코드를 읽는 협업을 하는 동료라던지 등의 상황을 고려했을때도 매우 훌륭하다고 개인적으로 생각하는 코드 방식입니다.
'알고리즘 문제 > [Java] 알고리즘' 카테고리의 다른 글
[Java] 자바 알고리즘, "문자열 다루기 기본" (2) | 2019.02.06 |
---|---|
[Java] 자바 알고리즘, "문자열 내 p와 y의 개수" (0) | 2019.02.06 |
[Java] 알고리즘, "나누어 떨어지는 숫자 배열" (0) | 2019.02.03 |
[Java] 알고리즘, "같은 숫자는 싫어" (1) | 2019.02.02 |
[Java] 알고리즘, "가운데 글자 가져오기" (0) | 2019.02.02 |