CODING TEST/baekjoon

#5597 - 과제 안 내신 분..?

iamyuunzo 2025. 7. 18. 22:05

📌 문제 정보

- 문제 이름 : #5597번 - 과제 안 내신 분..?

- 문제 링크 : https://www.acmicpc.net/problem/5597

 

 

📌 문제 요약

- 핵심 조건: 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, 그 중에서 제출 안 한 학생 2명의 출석번호를 구하는 프로그램을 작성

- 제한: 없음

 

 

📌 최종 정답 및 풀이

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        boolean[] submitted = new boolean[31];

        for (int i = 0; i < 28; i++) {
            int n = sc.nextInt();
            submitted[n] = true;
        }

        for (int i = 1; i <= 30; i++) {
            if (!submitted[i]) {
                System.out.println(i);
            }
        }
    }
}

<-- 풀이 요약 -->

- 나는 이중 for문으로 접근했는데 2중 for문으로 하니까 구현 방법을 모르겠어서 힌트 보고 풀었음.

- 학생 번호가 1~30이므로 인덱스 0은 사용하지 않음. (new boolean[31]) + 제출한 학생 true

- 제출하지 않은 학생의 번호 따로 다음 for문에서 출력

- 2중 for문이 안되는 이유? - 2중은 보통 모든 조합을 확인할 때 사용되기 때문.

- boolean을 쓰는 이유? - 어떤 번호가 있고 없고 판단할 때 true/false 2가지로 판단하기 때문.

 

- 너무 이해가 안되길래 GPT의 힘을 빌렸음..

 

📌 새로 배운 문법

- .