그저 내가 되었고
☕️Java:: 백준 자바 10093번 본문
문제
두 양의 정수가 주어졌을 때, 두 수 사이에 있는 정수를 모두 출력하는 프로그램을 작성하시오.
입력
두 정수 A와 B가 주어진다.
출력
첫째 줄에 두 수 사이에 있는 수의 개수를 출력한다.
둘째 줄에는 두 수 사이에 있는 수를 오름차순으로 출력한다.
서브태스크
번호 | 배점 | 제한 |
1 | 30 | 1 ≤ A, B ≤ 1000. |
2 | 70 | 1 ≤ A, B ≤ 10*15, A와 B의 차이는 최대 100,000. |
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
long a = sc.nextLong();
long b = sc.nextLong();
if(a > b) {
System.out.println((a - b) - 1);
for(Long i = b + 1; i < a; i++) {
System.out.print(i + " ");
}
} else if(a < b) {
System.out.println((b - a) - 1);
for(Long i = a + 1; i < b; i++) {
System.out.print(i + " ");
}
} else { //case a == b
System.out.println(0);
}
}
}
|
cs |
헤맨 포인트
1. 서브태스크 2번때문에 입력값의 타입을 long으로 지정해야 하는 점
2. 1번에 이어서.. Long으로 적으면 '래퍼클래스'가 되어 또 틀림..... long으로 지정 필요(T T)
3. 애당초 a와 b의 크기가 문제의 주범이므로 걔를 기준으로 케이스 나눠야 하고, 그러므로 처음에 Math.abs(b-a) - 1 이런 과정이 필요가 없다. 그냥 케이스 딱딱 나눠서 그에 따라 for문 돌려 출력해주면 그만.
'개발 > Java' 카테고리의 다른 글
☕️Java:: nextInt() 사용 후 nextLine() 사용시의 문제 해결하기 (0) | 2023.08.11 |
---|---|
☕️Java:: 백준 자바 11319번 (0) | 2023.08.10 |
☕️Java:: 바코드 출력 API 제작하기 (0) | 2023.08.04 |
☕️Java:: 생성자 오버로딩이란? (0) | 2023.07.10 |
☕️Java:: 다형성(polymorphism)이란? (0) | 2023.06.16 |