Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags more
Archives
Today
Total
관리 메뉴

luke

[백준] - 과제 안 내신 분..? (5597) (자바/Java) 본문

알고리즘문제/백준 문제(Java)

[백준] - 과제 안 내신 분..? (5597) (자바/Java)

luke-king 2024. 4. 17. 16:18

 

 

 

 

 

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

 

5597번: 과제 안 내신 분..?

X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데,

www.acmicpc.net

 

 

 

 

 

 

 

 

 

문제.


 

 

 

 

 

 

 

풀이.


 

public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int[] arr = new int[31];

        for (int i = 1; i < 29; i++) {
            int n = sc.nextInt();
            arr[n] = 1;
        }

        for (int i = 1; i < arr.length; i++) {

            if (arr[i] != 1) {
                System.out.println(i);
            }
        }

    }

}

 

이번 문제는 입력한 숫자 중 없는 번호 찾는 문제라 생각할 수 있는 문제다.

지문에서 각 번호를 가지고 있는 30명의 학생중 28명만 제출했으며 나머지 제출하지 않은 2명의 번호를 찾는 거다.

바로 풀이를 해보겠다.

 

1. 30번 까지의 번호가 필요하므로 index 31인 배열을 만들어 준다.

 

2. 번호는 1번부터 시작 하므로 28명의 학생 번호를 1번부터 입력해 준다.

 

3. 이제 없는 번호를 찾아내기 위해 arr [n] 입력한 번호들에 1의 숫자로 초기화해준다.

 

4. 배열의 길이 31 만큼 루프를 돌려 1번부터 30번까지 없는 번호를 찾아낸다.

 

5. 입력한 숫자 중 index 2,8 이 없었으며 초기화 값으로 1 이 아니기에 쉽게 찾아낼 수 있다.