최대 1 분 소요

[백준 16396번] 선 그리기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package _1월_4주차;
 
import java.util.Scanner;
public class 백준_손수경_정답_16396 {
 
    public static void main(String[] args) {
        
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] line = new int[10001];
        int cnt = 0;
        
        for (int i = 0; i < n; i++) {
            int x = sc.nextInt();
            int y = sc.nextInt();
            for (int j = x; j < y; j++) { //길이를 구하는 것이므로 1부터 3까지의 길이는 2이다. 따라서 y-1번까지 반복문을 돌려야 길이를 구할 수 있다. 
                line[j] = 1;
            }
        }
        
        for (int i = 0; i < 10001; i++) {
            if (line[i] == 1) {
                cnt++;
            }
        }
        System.out.println(cnt);
    }
 
}
 
cs

line 배열을 1부터 10000까지를 하나의 수직선으로 보고 입력된 x와 y를 반복문을 돌면서 1로 바꾸어 줄 것이다. 그 후 1의 개수를 세어서 길이를 구하는 방식이다.

댓글남기기