[백준] 5597번 과제 안 내신분..? / C++ Java

SmileJun·2025년 3월 3일

알고리즘

목록 보기
12/34

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

C++

#include<iostream>
#include<algorithm>
using namespace std;

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    int student[31];
    int n;
    for(int i = 1; i <= 30; i++) {
        student[i] = i;
    }

    for(int j = 1; j <= 28; j++) {
        cin >> n;
        student[n] = 0;
    }

    for(int k = 1; k <= 30; k++) {
        if(student[k] != 0) {
            cout << student[k] << "\n";
        }
    }
}

Java


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int [] n = new int[100];
        int num;

        for(int i = 1; i <= 30; i++) {
            n[i] = i;
        }

        for(int j = 1; j <= 28; j++) {
            num = Integer.parseInt(br.readLine());
            n[num] = 0;
        }

        for(int k = 1; k <= 30; k++) {
            if(n[k] != 0) {
                bw.write(n[k] + "\n");
            }
        }
        bw.flush();
        br.close();
    }
}

문제풀이

  • 먼저 배열에 1번부터 30번까지 저장했다. 그런 다음 28개 번호를 입력받고, 입력 받은 번호에 해당하는 배열의 값을 0으로 바꿨다. 마지막으로 배열의 값이 0이 아닌 수를 출력했다.

Comment

  • 배열의 시작을 1번부터 하고 싶다면, 범위를 30이 아닌 31로 잡아야 한다. 이외에는 큰 어려움 없었다.
profile
하루하루는 성실하게, 인생 전체는 되는대로

0개의 댓글