java/백준 알고리즘

[백준 알고리즘 / 1차원배열] 5597번 : 과제 안 내신분...? - JAVA

각시탈코더 2023. 3. 24. 15:34

💡문제

https://www.acmicpc.net/problem/5597

 

 

💡정답

import java.util.Scanner;

public class no5597 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		boolean stuChk[] = new boolean[31]; //학생 30명의 출석명부를 만든다.
		
		//과제를 제출한 28명의 번호를 true로 설정한다.
		for(int i=0; i<28; i++) {
			stuChk[sc.nextInt()] = true;
		}
		
		//과제를 제출하지 않은 인원의 번호를 false로 설정하고 번호를 출력한다. 
		for(int i=1; i<=30; i++) {
			if(!stuChk[i])
				System.out.println(i);
		}
	}
}

 

-학생 출석 명부를 만들기 위해 stuChk[]를 생성한다. 배열이기 때문에 출석을 0부터 안세고 1부터 세니 배열의 크기는 31의 크기가 필요하다.

 

-과제를 제출한 학생과 제출하지 않은 학생을 구별하기 위해 boolean타입을 사용한다(제출했으면 true, 제출하지 않았으면 false)

 

-for문을 돌려(i=0~ i=27) 28개의 값을 true로 설정한다. 과제를 제출한 학생들을 표시하기 위한 작업이다.

 

-for문을 돌려 배열 stuChk의 값을 모두 확인한 후 false의 값이 나오면(과제 미제출) 해당 자리의 값 i를 출력한다.