자바 초급문제로 맨땅에 해딩하기

자바 초급문제 19. 두정수사이의합

Jungsoomin :) 2020. 4. 11. 01:41

프로그래머스(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가 같은 경우는 둘 중 아무 수나 리턴하세요.

  • a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.

  • a와 b의 대소관계는 정해져있지 않습니다.

 

이번에는 List를 사용해서 대입시키는 것을 중심으로 두고 코드를 짜내려갔다. 좀 더 괜찮아 진 것 같고 List에 그나마 가깝게 다가갈 수 있어서 행복한 시간이었다고 생각한다.

 

 

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
31
32
33
34
35
36
37
package programmers_두정수사이의합;
 
import java.util.*;
 
public class subClass {
    public long solution(int a, int b) {
        long answer = 0;
        // a~b사이의 수들을 더해서 리턴하세요
        // a,b의 대소관계는 정해지지않았습니다.
        // a==b 면 둘중 아무나 리턴하세요
        ArrayList<Integer> list = new ArrayList<>();
        // 앞 수가 안들어가고 있다. a=3 ,b=5 a b 가 음수일때도 있다. 배열로 접근해야한다.
        if (a < b) {
            for (int i = a; i < b + 1; i++) {
                list.add(a);
                a++;
            }
 
        } else if (b < a) {
            for (int i = b; i < a + 1; i++) {
                list.add(b);
                b++;
            }
 
        } else {// 같을 때
            answer = a;
        }
 
        if (list.size() > 0) {// 수가 들어갔을때
            for (int i = 0; i < list.size(); i++) {
                answer += list.get(i);
            }
        }
 
        return answer;
    }
}
cs