[백준 - 15922] 골드5 - 아우으 우아으이야!!
알고리즘/백준

[백준 - 15922] 골드5 - 아우으 우아으이야!!

1. 유형

구현

 

2. 풀이

 

visit배열을 써서 방문한 곳과 방문 안 한 곳을 나눠서 풀 수도 있지만, 그랬다간 시간초과가 날것이다.

 

때문에 가능한 경우를 나누어서 생각 해야한다.

 

아래처럼 나오는 숫자가 3가지의 경우가 있다.

즉, 겹치는 부분이 있기때문에 끝 점을 계속 갱신 하면서, (끝점 - 처음점)을 빼는 식으로 

 

총 길이를 구해야 한다.

 

3. 코드

package 구현;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Beak_15922아우으우아으이야 {
	public static void main(String[] args) throws IOException {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(in.readLine()," ");
		int N = Integer.valueOf(st.nextToken());
		int a1,b1,a2,b2;
		
		st = new StringTokenizer(in.readLine()," ");
		a1=Integer.valueOf(st.nextToken());
		b1=Integer.valueOf(st.nextToken());
		int sum=0;
		for(int i=0;i<N-1; i++) {
			st = new StringTokenizer(in.readLine()," ");
			a2= Integer.valueOf(st.nextToken());
			b2 = Integer.valueOf(st.nextToken());
			if(b1>=b2) {
				continue;
			}else if(b1>=a2) {
				b1=b2;
			}else {
				sum+=Math.abs(b1-a1);
				a1=a2;
				b1=b2;
			}
		}
		sum+=Math.abs(b1-a1);
		System.out.println(sum);
	}
}