[백준] 1059번 좋은 구간 - Java
문제 출처
https://www.acmicpc.net/problem/1059
※ 풀이
n 과 수열 s 이 주어졌을 때 n 을 포함하면서 s에는 속하지 않는 범위를 구하는 문제이다.
문제에서 주어진 범위가 1000 이므로 이중 for 문을 돌리면서 탐색을 해도 1억번을 넘지 않으므로 시간 내에는 충분한 것으로 보인다.
따라서 브루트 포스로 모든 가능한 경우의 수를 탐색하면서 돌면 된다.
※ 소스코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int l = Integer.parseInt(br.readLine());
int[] data = new int[l];
String[] strings = br.readLine().split(" ");
for (int i = 0; i < strings.length; i++) {
data[i] = Integer.parseInt(strings[i]);
}
data = Arrays.stream(data).sorted().toArray();
int n = Integer.parseInt(br.readLine());
int startPoint = -1;
int endPoint = 10000;
for (int number : data) {
if (number < n) {
startPoint = number;
} else if (number > n) {
if(endPoint > number) {
endPoint = number;
}
} else {
System.out.println(0);
return;
}
if (startPoint != -1 && endPoint != 10000) {
break;
}
}
if (startPoint == -1) {
startPoint = 0;
}
if (endPoint == -1) {
endPoint = 1001;
}
//i는 시작점
int answer = 0;
for (int i = startPoint + 1; i < endPoint; i++) {
if(i>n){
break;
}
//j 는 끝점
for (int j = n; j < endPoint; j++) {
if (i == j) {
continue;
}
answer ++;
}
}
System.out.println(answer);
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 1929번 소수 구하기 - Java[에라토스테네스의 체] (0) | 2021.06.12 |
---|---|
[백준] 14697번 방 배정하기 - Java[브루트포스] (0) | 2021.06.12 |
[백준] 5567번 결혼식 - Java[BFS] (0) | 2021.06.10 |
[백준] 10816번 숫자 카드2 - Java (0) | 2021.06.09 |
[백준] 9012번 괄호 - Java[스택] (0) | 2021.06.09 |