본문 바로가기
Problem Solving/SWEA

[SWEA] 5431. 민석이의 과제 체크하기

by 테리는당근을좋아해 2020. 2. 22.

문제

전체 학생 수, 과제를 제출한 학생 수, 과제를 제출한 학생의 번호가 주어질 때, 

 

과제를 제출하지 않은 학생의 번호를 오름차순으로 출력하는 문제

 

풀이방법

학생 수 + 1만큼의 배열을 생성하고 0으로 초기화한다.

 

그런 다음, 과제를 제출한 학생의 번호와 같은 배열인덱스에 1을 대입한다.

 

최종적으로 과제를 제출하지 않은 학생 번호와 같은 인덱스의 값은 0이 됨으로,

 

1부터 시작해 배열의 원소 값이 0인 인덱스를 출력한다.

 

소스코드

package samsung;

import java.util.*;

public class s_5431 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int test = sc.nextInt();
		for(int t = 1; t <= test; t++) {
			int n = sc.nextInt();
			int s = sc.nextInt();
			int[] a = new int[n+1];
			for(int i = 0; i < s; i++) {
				int tmp = sc.nextInt();
				a[tmp] = 1;
			}
			System.out.print("#" + t + " ");
			for(int i = 1; i <= n; i++) {
				if(a[i] == 0)
					System.out.print(i + " ");
			}
			System.out.println();
		}
	}
}

 

댓글