영상
문제
package 배열3_문제;
/*
[문제]
아래 배열은 3명의 학생 데이터이다.
각 학생은 3개씩 데이터로 표현한다.
맨 앞은 번호, 그 다음은 국어점수, 그 다음은 수학점수이다.
[예시]
1001번, 국어20, 수학30
1002번, 국어43, 수학23
1003번, 국어45, 수학1
아래 학생 3명 중 국어점수가 수학점수 보다 높은 학생번호를
answer 배열에 저장하고 출력하시오.
[정답]
answer = {1002, 1003, 0, 0, 0, 0, 0, 0, 0}
*/
public class 배열3_문제07_학생검색_문제 {
public static void main(String[] args) {
int[] arr = {1001, 20, 30, 1002, 43, 23, 1003, 45, 1};
int[] answer = new int[arr.length];
}
}
Java
복사
해설
package 배열3_문제;
import java.util.Arrays;
import java.util.Scanner;
/*
[문제]
아래 배열은 3명의 학생 데이터이다.
각 학생은 3개씩 데이터로 표현한다.
맨 앞은 번호, 그 다음은 국어점수, 그 다음은 수학점수이다.
[예시]
1001번, 국어20, 수학30
1002번, 국어43, 수학23
1003번, 국어45, 수학1
아래 학생 3명 중 국어점수가 수학점수 보다 높은 학생번호를
answer 배열에 저장하고 출력하시오.
[정답]
answer = {1002, 1003, 0, 0, 0, 0, 0, 0, 0}
*/
public class 배열3_문제07_학생검색_정답 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 1 4 7
int[] arr = {1001, 20, 30, 1002, 43, 23, 1003, 45, 1};
int[] answer = new int[arr.length];
/*
[풀이]
i = 0 i%3==1 false
i = 1 i%3==1 true arr[1] > arr[2] false
i = 2 i%3==1 false
i = 3 i%3==1 false
i = 4 i%3==1 true arr[4] > arr[5] true answer[1002, 0, 0, 0, 0, 0, 0, 0, 0]
i = 5 i%3==1 false
i = 6 i%3==1 false
i = 7 i%3==1 true arr[7] > arr[8] true answer[1002, 1003, 0, 0, 0, 0, 0, 0, 0]
*/
int index = 0;
for(int i=0; i<arr.length; i++) {
if(i % 3 == 1) {
if(arr[i] > arr[i + 1]) {
answer[index] = arr[i - 1];
index += 1;
}
}
}
System.out.println(Arrays.toString(answer));
}
}
Java
복사