기록하는 공부

[백준 5597] 배열 선언 (3가지 방법) 본문

Language/Java

[백준 5597] 배열 선언 (3가지 방법)

SS_StudySteadily 2023. 3. 27. 21:28
728x90
반응형

 

문제

 

 

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

 

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

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

www.acmicpc.net

 

 

 

 


 

코드 1 - boolean 타입 사용

 

import java.util.*;
//import java.io.*;

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

		boolean arr[] = new boolean[30];	//총 학생 수 30명이지만 1부터 반복문을 돌릴거니까 +1
		
		for(int i=1; i<=28; i++) {			//숙제 제출한 학생 총 28명
			int input = scan.nextInt();		//숙제 제출한 학생 출석번호 입력
			arr[input] = true;				//해당 학생 배열 인덱스를 True로 설정
		}
		
		for(int j=1; j<=30; j++) {			//총 학생 30명
			if(!arr[j]) {					//배열(숙제제출학생)인덱스가 True가 아니면(False) 
				System.out.println(j);		//출력
			}
		}
		scan.close();
	}
}

 

 

 

 

코드 2 - 정수형 배열 사용

 

import java.util.*;
//import java.io.*;

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

		int arr[] = new int[31];	//총 학생 수 30명이지만 1부터 반복문을 돌릴거니까 +1
		
		for(int i=1; i<=28; i++) {			//숙제 제출한 학생 총 28명
			arr[scan.nextInt()] ++;				//숙제 제출한 학생 출석번호(인덱스) 값 증가
		}
		
		for(int j=1; j<=30; j++) {			//총 학생 30명
			if(arr[j] == 0) {				//값이 증가하지 않은 인덱스는 0(숙제 제출안한 학생 번호)
				System.out.println(j);		//출력
			}
		}
		scan.close();
	}
}

 

 

 

 

코드 3 - bufferedReader와 bufferedWriter 사용

 

import java.util.*;
import java.io.*;

class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		int arr[] = new int[31];	//총 학생 수 30명이지만 1부터 반복문을 돌릴거니까 +1
		
		for(int i=1; i<=28; i++) {					//숙제 제출한 학생 총 28명
			arr[Integer.parseInt(br.readLine())]++;	//숙제 제출한 학생 출석번호(인덱스) 값 증가
		}
		
		for(int j=1; j<=30; j++) {			//총 학생 30명
			if(arr[j] == 0) {				//값이 증가하지 않은 인덱스는 0(숙제 제출안한 학생 번호)
				System.out.println(j);		//출력
			}
		}
		br.close();
	}
}

 

728x90
반응형