[백준] 2562번 문제
문제
문제출처 : Baekjoon
풀이1
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int arr[] = new int[9];
int arrIndex = 0;
for(int i = 0; i < arr.length; i++){
arr[i] = sc.nextInt();
}
int max = arr[0];
for(int i = 0; i < arr.length; i++){
if(max <= arr[i]){
max = arr[i];
arrIndex = i+1;
}
}
sc.close();
System.out.println(max);
System.out.println(arrIndex);
}
}
풀이2
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int arr[] = new int[9];
int arrIndex = 0;
int max = arr[0];
for(int i = 0; i < arr.length; i++){
arr[i] = sc.nextInt();
}
for(int i = 0; i < arr.length; i++){
if(max < arr[i]){
max = arr[i];
arrIndex = i+1;
}
}
sc.close();
System.out.println(max);
System.out.println(arrIndex);
}
}
회고
- 1번 방식에서는
<=
이 조건을 안줘서 계속 90%에서 틀렸습니다가 발생했다. 그래서 2번방식으로 바꾸고나니 바로 해결이 되어서 뭔가 싶어 다른사람들의 질문창을 보았다. 1번방식에max < arr[i]
로 조건을 줄 경우, 제일 큰값이 0번 인덱스에 들어갈 경우 밑의 if문 조건의arrIndex = i+1
의 조건을 만족하지 못해 arrIndex의 값으로 0이 출력되어<=
으로 조건을 줘야한다는 것이였다. 누군가 나처럼 이런 오류를 발견하지 못했고 이유를 적어두시지 않았으면 잠 못잘뻔 했다 다행이다…!