Search

배열3_문제07_학생검색

대분류
STEP04 배열
소분류
배열3_문제

영상

문제

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
복사