728x90
문제 링크
https://www.acmicpc.net/problem/10093
문제 설명
두 양의 정수가 주어졌을 때, 두 수 사이에 있는 정수를 모두 출력하는 프로그램을 작성하시오.
입력
두 정수 A와 B가 주어진다.
출력
첫째 줄에 두 수 사이에 있는 수의 개수를 출력한다.
둘째 줄에는 두 수 사이에 있는 수를 오름차순으로 출력한다.
서브태스크
번호 | 배점 | 제한 |
1 | 30 | 1 ≤ A, B ≤ 1000. |
2 | 70 | 1 ≤ A, B ≤ 10¹⁵ A와 B의 차이는 최대 100,000. |
구조화
브론즈여서 문제 제대로 안읽고 푼 것 같다.. 반성중..
일단 이 문제에서 봐야하는 포인트는
1. A, B 중 누가 더 큰지
2. A, B가 같다면?
3. 배점 70의 수 범위
일단 1번 A, B 비교해서 작은 걸 A, 큰 걸 B로 변경해줬다.
2번 if (A == B) -> 0 출력하고 끝나게
3번 int는 -2,147,483,648 ~ 2,147,483,647 라서 10의 15승을 나타내지 못함 -> Long 사용
소스 코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
long a = Long.parseLong(st.nextToken());
long b = Long.parseLong(st.nextToken());
if (a==b) {
System.out.println(0);
System.exit(0);
}
long tmp1 = a;
long tmp2 = b;
a = Math.min(tmp1, tmp2);
b = Math.max(tmp1, tmp2);
System.out.println(b-a-1);
for (long i = a+1; i < b; i++) {
System.out.print(i+" ");
}
}
}
'Algorithm > 백준' 카테고리의 다른 글
[백준] 13305 주유소 🚗 (Java) (0) | 2024.11.22 |
---|---|
[백준] PLAYERJINAH’S BOTTLEGROUNDS 🔫 (Java) (0) | 2024.11.21 |
[백준] 10282 해킹 💻 (Java) (1) | 2024.11.19 |
[백준] 1197 최소 스패닝 트리 🎄 (Java) (1) | 2024.11.19 |
[백준] 4659 비밀번호 발음하기 🤫 (Java) (0) | 2024.11.18 |