https://www.acmicpc.net/problem/1059
1059번: 좋은 구간
[9, 10], [9, 11], [9, 12], [10, 11], [10, 12]
www.acmicpc.net
구간을 찾는 문제이다.
정수 집합 S가 있고, 주어진 숫자가 포함된 구간을 좋은 구간이라고 한다.
A<=B를 만족하며 두번째 줄에 입력한 숫자들은 구간에 포함되지 않는다 한다.
정수형 배열 안에서 가장 가까운 수를 찾는 로직이다.
numbers배열안을 선회하며
만약 numbers[i]가 n보다 크고 현재 end값보다 작다면
n과 더 가까운 수가 되니 end에 numbers[i]를 저장한다.
반대로 numbers[i]가 n보다 작으며 현재 start값보다 크면
n과 더 가까운 수가 되니 start에 numbers[i]를 저장한다.
// numbers[]안에서 제일 가까운 수 찾기 int temp = 0; int start = 0; int end = Integer.MAX_VALUE; for (int i = 0; i < numbers.length; i++) { if(numbers[i] > n) { if(numbers[i] < end) end = numbers[i]; }else if(numbers[i] < n) { if(start < numbers[i]) start = numbers[i]; } else if(numbers[i] == n){ // 만약 갖고 있다면 break; System.out.println("0"); System.exit(0); } }
아래는 전체 코드이다.
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int l = Integer.parseInt(br.readLine()); int numbers[] = new int[l]; StringTokenizer st = new StringTokenizer(br.readLine()); for (int i = 0; i < numbers.length; i++) { numbers[i] = Integer.parseInt(st.nextToken()); } int n = Integer.parseInt(br.readLine()); Arrays.sort(numbers); // numbers[]안에서 제일 가까운 수 찾기 int temp = 0; int start = 0; int end = Integer.MAX_VALUE; for (int i = 0; i < numbers.length; i++) { if(numbers[i] > n) { if(numbers[i] < end) end = numbers[i]; }else if(numbers[i] < n) { if(start < numbers[i]) start = numbers[i]; } else if(numbers[i] == n){ // 만약 갖고 있다면 break; System.out.println("0"); System.exit(0); } } int cnt = 0; for (int i = start + 1; i <= n ; i++) { for (int j = n; j <= end-1; j++) { if(i != j) cnt++; } } System.out.println(cnt); } // main }
'BOJ, Programmers' 카테고리의 다른 글
[JAVA] 백준 1041 (주사위) (0) | 2024.04.05 |
---|---|
[Java] 백준 1500 (최대곱) (0) | 2024.04.03 |
[Java] 백준 1010번 (다리놓기) (0) | 2024.03.30 |
[Java] 백준 1012번 (유기농 배추) (0) | 2024.03.30 |
Test (0) | 2024.03.30 |