반응형
https://www.acmicpc.net/problem/5597
5597번: 과제 안 내신 분..?
X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데,
www.acmicpc.net
내 첫번째 풀이법_ Scanner를 이용하고, 이중포문으로 배열 확인하기.
-> 이 풀이법이 가장 먼저 생각이 나서 풀어보았다...
너무 긴것같아서 다른 사람들의 풀이를 참고해보니 첫번째로 배열을 꼭 두개를 생성하지 않아도 풀 수 있다는 것을 알게 되었고, 두번째로는 bolean을 이용해서 문제를 풀 수 있다는 것을 깨닫게 되어 두방법 모두를 활용해서 풀어보았다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int students[] = new int[28];
//체크할 학생체크배열에 0을 다 대입해주기.
int studentscheck[] = new int[31];
studentscheck[0] = 0;
for (int i = 1; i < 30; i++) {
studentscheck[i] = 0;
}
//스캐너를 통해 학생 배열에 일단 순서 상관없이 담아주기
for (int i = 0; i < 28; i++) {
students[i] = sc.nextInt();
}
for (int i = 0; i < students.length; i++) {
for (int j = 1; j < 31; j++) {
if (students[i] == j) {
studentscheck[j] = j;
}
}
}
for (int i = 1; i < studentscheck.length; i++) {
if (studentscheck[i] == 0) {
System.out.println(i);
}
}
}
}
두번째 풀이법_ 바로 입력 번호를 가져와서 배열에 대입하기.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int studentsarray[] = new int[31];
//28명이 제출할 예정이므로 28번을 입력받아서 해당 인덱스 값을 증가시켜준다.
for (int i = 0; i < 28; i++) {
studentsarray[sc.nextInt()]++;
}
//1번부터 30번까지 돌면서 값인 0인 값을 찾으면 정답!
for (int i = 1; i < 31; i++) {
if(studentsarray[i]==0){
System.out.println(i);
}
}
}
}
세번째 풀이법 _ boolean 값을 이용하기!
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean students[] = new boolean[31];
//인덱스에 해당하는 값 가져오기!
for (int i = 0; i < 28; i++) {
students[sc.nextInt()]=true;
}
//boolean을 활용해서 값 출력
for (int i = 1; i < 31; i++) {
if (!students[i]){
System.out.println(i);
}
}
}
}
'개발 > [백준] 브론즈 마스터하기' 카테고리의 다른 글
백준 3003번_킹, 퀸, 룩, 비숍, 나이트, 폰 [java] (0) | 2023.01.10 |
---|---|
백준 4673번 _ 셀프넘버 [자바] (0) | 2023.01.09 |
백준 25304번 _ 영수증 (0) | 2023.01.03 |
백준 10807번 개수 세기 (0) | 2023.01.02 |
[백준] 2908번 _ 상수 (자바) (0) | 2022.08.02 |