반응형
접근 방법)
이 문제는 배열의 초깃값을 이용하여 문제를 쉽게 풀 수 있다.
int형 배열일 경우 초깃값은 0이고, boolean형 배열일 경우 초깃값은 false이다.
이러한 특징을 이용하여 입력 값에 해당하는 배열 번호는 초깃값과 다른 값으로 설정한 후 배열 1번부터 30번까지 for문을 이용하여 여전히 초깃값에 해당하는 배열 번호를 뽑아 출력하면 된다.
▷ int형 배열 초기값 바꾸기
for문을 이용하여 입력 값으로 주어진 28개 배열만 초기값과 다르게 값을 바꿔준다.
int[] g = new int[31];
for(int i = 1; i <= 28; i++){
int n = sc.nextInt(); // Scanner sc = new Scanner(System.in)
g[n] = 1;
}
▷ boolean형 배열 초기값 바꾸기
for문을 이용하여 입력 값으로 주어진 28개 배열만 초기값과 다르게 값을 바꿔준다.
boolean[] arr = new boolean[31];
for(int i = 1; i <= 28; i++){
int a = sc.nextInt(); // Scanner sc = new Scanner(System.in)
g[a] = true;
}
이 방법을 이용해서 아래와 같이 코드를 완성해 보자.
정답 코드 1)
import java.util.*;
import java.lang.*;
import java.io.*;
// The main method must be in a class named "Main".
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] g = new int[31];
for(int i = 1; i <= 28; i++){
int n = sc.nextInt();
g[n] = 1;
}
for(int j = 1; j <= 30; j++){
if(g[j]==0){
System.out.println(j+"");
}
}
}
}
정답 코드 2)
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner s = new Scanner(System.in);
boolean[] g = new boolean[31];
for(int i = 1; i <= 28; i++){
int a = s.nextInt();
g[a] = true;
}
for(int j = 1; j <= 30; j++){
if(g[j] == false){
System.out.println(j);
}
}
}
}
반응형
'Baekjoon 자바 코드 > 1차원 배열' 카테고리의 다른 글
[백준] 10811번 바구니 뒤집기 풀이 코드 (Java 자바) (0) | 2024.08.05 |
---|---|
[백준] 3052번 나머지 풀이 코드 (Java 자바) (0) | 2024.08.02 |
[백준] 10813번 공 바꾸기 풀이 코드 (Java 자바) (0) | 2024.07.30 |
[백준] 10810번 공 넣기 풀이 코드 (Java 자바) (0) | 2024.07.29 |
[백준] 2562번 최댓값 풀이 코드 (Java 자바) (1) | 2024.07.23 |