본문 바로가기
Baekjoon 자바 코드/1차원 배열

[백준] 10871번 x보다 작은 수 풀이 코드 (Java 자바)

by 망댕이 2024. 7. 9.
반응형

 

접근 방법)

 

위 문제 배열을 가지고 풀지 않아도 되는 문제지만 배열 파트인 만큼 배열로 풀어보자.

첫 번째 줄 값만큼(왼쪽) 크기를 가진 1차원 배열을 가지고, for문을 이용하여 그 배열 안에 주어진 두 번째 줄값들을 넣는다.

그리고 배열 생성 후 또 다른 for문을 이용하여 배열 안에 넣은 값들을 처음부터 하나씩 첫 번째 줄 입력값(오른쪽)과 비교하여 작은 값들을 출력하도록 코드를 작성한다.

 

 

▷ 1차원 배열 생성

 

1차원 배열 생성은 for문을 이용하여 쉽게 나타낼 수 있다.

int[] g = new int[N];

for(int i = 0; i < N; i++){ 
    int a = s.nextInt(); // Scanner s = new Scanner(System.in)
    g[i] = a;
}

 

배열 [0]부터 배열 [N-1] 번까지 값을 넣어주는 반복 작업으로 1차원 배열을 생성할 수 있다.

 


정답 코드 1)

import java.util.Scanner;

class Main{
    public static void main(String[] args){
        Scanner s = new Scanner(System.in);
        int n = s.nextInt();
        int x = s.nextInt();
        int[] group = new int[n]; // 1차원 배열 생성
        
        for(int i = 0; i < n; i++){ // 배열 안에 입력값 넣기
            int a = s.nextInt();
            group[i] = a;
        }
        for(int j = 0; j < n; j++){ // 배열 안의 모든 값들을 x와 비교하기
            if(group[j]<x){
                System.out.print(group[j]+" ");
            }
        }
    }
}

 

1차원 배열을 생성하고 그 안에 a(입력값)을 순서대로 배열 안에 넣어준다.

그다음 배열을 [0] ~ [n-1]까지 x와 비교하며 작을 때 출력되도록 코드를 작성한다.

 

정답 코드 2)

import java.util.Scanner;

class Main{
    public static void main(String[] args){
        Scanner s = new Scanner(System.in);
        int n = s.nextInt();
        int x = s.nextInt();
        
        for(int i = 0; i < n; i++){ // 단순한 n번 반복 작업해서 입력 값과 x 값을 비교하여 결과 출력
            int a = s.nextInt();
            if(a<x){
                System.out.print(a+" ");
            }
        }
    }
}

 

이 코드는 배열을 생성하는 것이 아닌 단순하게 n번 반복 작업으로 입력 값과 x값을 비교한 후 x값보다 작았을 때 해당 입력 값을 출력하는 방식으로 작성한 코드이다.

반응형