스파이 찾기
https://campus.programmers.co.kr/tryouts/90593/challenges
- 문제 (난이도 하)
준식이는 수열 A[1], A[2], ..., A[N] (N ≥ 3) 을 가지고 있다. 이 수열에서 단 한 개의 수를 제외하고 나머지 수는 모두 같다. 그 수는 수열에서 몇 번째에 위치할까?
- 입력
첫째 줄에 테스트 케이스의 개수 T 가 주어진다.
각 테스트 케이스의 첫째 줄에 수열의 길이 N (3 ≤ N ≤ 100)이 주어진다.
둘째 줄에 A[1], A[2], ..., A[N]이 주어진다. 수열의 i번째 원소는 정수 A[i] (1 ≤ A[i] ≤ 100)이다.
주어지는 수열에서 단 한 개의 수를 제외하고 나머지 수는 모두 같다.
- 출력
각 테스트 케이스마다 문제의 정답이 수열에서 몇 번째에 위치하는지 출력한다.
- 풀이
자바로 해결
첫 인덱스, 마지막 인덱스에 해당하는 원소를 비교한 후, arr[0], arr[size-1] 두 원소가 같다면 그 사이 값들 중에 스파이를 탐색하였다.
두 원소가 다르다면 arr[1]와 비교하여 다른 것을 출력하도록 하였다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class spy_0713 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader((System.in)));
int case1 = Integer.parseInt(br.readLine());
for (int i = 0;i<case1;i++){
int size = Integer.parseInt(br.readLine());
String [] A = br.readLine().split(" ");
int [] A_int = new int[size];
for (int j = 0;j<size;j++){
A_int[j] = Integer.parseInt(A[j]);
}
int start = A_int[0];
int end = A_int[size-1];
int result_index = 0;
for (int j = 1;j<size-1;j++){
int temp = A_int[j];
if(start != end){
if(temp == start){
result_index = size;
}
else {
result_index = 1;
}
break;
}
else{
if(temp != start){
result_index = j+1;
break;
}
}
}
System.out.println(result_index);
}
}
}
'Coding Test > Java' 카테고리의 다른 글
[배열] 타노스 배열 (0) | 2023.07.13 |
---|---|
[JAVA] 백준 11650번 : 좌표 정렬하기 (2차원 배열 Arrays.sort정렬) (0) | 2022.09.01 |