알고리즘/백준(BAEKJOON)

10871/X보다 작은 수/자바 /백준

jojelly 2020. 8. 16. 03:38
반응형

간단한 문제이다.  N값과 X값 두개의 입력값이 들어온다.

N값은 수열을 이루는 정수로 10을 입력시 1~9까지의 정수가 주어지는거고 X값이 입력되면 N값의 수열 중에서 X값보다 작은 수들만 순서대로 + 공백으로 나열하면 되는거다 . 예제처럼 N = 10 X = 5라는 값이 주어지면 1~9중에서 5미만의 정수들은 순서대로 + 공백 으로 출력되도록 하면 되는것이다. 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.util.Scanner;
 
public class Main10_1 {
 static int N,X;
    public static void main(String[] args) throws Exception{
        Scanner sc = new Scanner(System.in);
         
        N = sc.nextInt();        //N입력값
        X = sc.nextInt();        //X입력값
        
        for (int i = 1; i <= N; i++) {
            int num = sc.nextInt();
            if (num < X) {
                System.out.print(num + " ");
            }
        }
    }
}
 
cs

 

배열과 단순 for문과 if문을 활용하여 두개의 방법을 사용해서 두번 풀어보았다. 

첫번째는 단순 for문과 if문을 사용한다 방법이다. 

scanner를 통해  N,X로 입력받은 후   for문을 이용해 1부터 N입력값까지 의 수를 저장한다.

이때 두번쨰 입력값인X보다 작은 수 는 if문을 통해 하나씩 출력시켜주는 방법이다. 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.util.Scanner;
 
public class Main10 {
 
    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
    
        int a = sc.nextInt();
        int b = sc.nextInt();
        int arr[] = new int[a];    //배열사용
        
        for (int i = 0; i < a; i++) {        
            arr[i] = sc.nextInt();
        }    
        sc.close();
        
        for (int i = 0; i < a; i++) {
            if (arr[i] < b) {
                System.out.print(arr[i] + " ");
            }
        }
    }
}
cs

두번째 방법은 배열을 이용한 방법이다. scanner를 통해 값을 입력받을 후 첫번째 for문을 이용해 배열요소를 순서대로 하나씩 입력해준다. 이후 배열들을 두번째 입력값 보다 작은값들을 만났을 때 출력해준다. 

반응형