인프런 커뮤니티 질문&답변
오답 질문입니다
작성
·
148
0
이분검색 문제인데요
import java.util.*;
class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int input1 = sc.nextInt();
int input2 = sc.nextInt();
int[] array = new int[input1];
for(int i = 0 ; i <input1; i++) {
array[i] = sc.nextInt();
}
int tmp = 0;
for(int i = 0; i < input1-1; i++) {
for(int j = 0 ; j < input1-2; j++) {
if(array[j] > array[j+1]) {
tmp = array[j+1];
array[j+1] = array[j];
array[j] = tmp;
}
}
}
int lt = 0;
int rt = input1-1;
int mid = (int)((lt+rt)/2);
while(true) {
if(array[mid] == input2) {
System.out.print(mid+1);
break;
}
if( array[mid] > input2) {
rt = mid-1;
mid = (int)((lt+rt)/2);
}
if( array[mid] < input2) {
lt = mid+1;
mid = (int)((lt+rt)/2);
}
}
sc.close();
}
}
짝수인경우 홀수인경우 입력해보았는데요 왜 오답이 뜨는지 모르겠습니다 ㅠㅠ;;
오답이 떴을때 원인 찾는 노하우라도 있나요?
답변 1
0
안녕하세요^^
오답이 나오면 그 답이 나오는 과정을 보기 위해 중간과정의 값들을
System.out.println()으로 출력해보세요. 값의 변화를 어떻게 되는지 살펴보면 느낌이 옵니다.





