강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

toran8754님의 프로필 이미지
toran8754

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

오답 질문입니다

작성

·

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()으로 출력해보세요. 값의 변화를 어떻게 되는지 살펴보면 느낌이 옵니다.

toran8754님의 프로필 이미지
toran8754

작성한 질문수

질문하기