[Algorithm] ๐Ÿ•ด๏ธ๋ฐฑ์ค€ 1946 ์‹ ์ž…์‚ฌ์›

HaJingJingยท2021๋…„ 8์›” 24์ผ
0

Algorithm

๋ชฉ๋ก ๋ณด๊ธฐ
98/119

0. ๋ฌธ์ œ

์–ธ์ œ๋‚˜ ์ตœ๊ณ ๋งŒ์„ ์ง€ํ–ฅํ•˜๋Š” ๊ตด์ง€์˜ ๋Œ€๊ธฐ์—… ์ง„์˜ ์ฃผ์‹ํšŒ์‚ฌ๊ฐ€ ์‹ ๊ทœ ์‚ฌ์› ์ฑ„์šฉ์„ ์‹ค์‹œํ•œ๋‹ค. ์ธ์žฌ ์„ ๋ฐœ ์‹œํ—˜์€ 1์ฐจ ์„œ๋ฅ˜์‹ฌ์‚ฌ์™€ 2์ฐจ ๋ฉด์ ‘์‹œํ—˜์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. ์ตœ๊ณ ๋งŒ์„ ์ง€ํ–ฅํ•œ๋‹ค๋Š” ๊ธฐ์—…์˜ ์ด๋…์— ๋”ฐ๋ผ ๊ทธ๋“ค์€ ์ตœ๊ณ ์˜ ์ธ์žฌ๋“ค๋งŒ์„ ์‚ฌ์›์œผ๋กœ ์„ ๋ฐœํ•˜๊ณ  ์‹ถ์–ด ํ•œ๋‹ค.

๊ทธ๋ž˜์„œ ์ง„์˜ ์ฃผ์‹ํšŒ์‚ฌ๋Š”, ๋‹ค๋ฅธ ๋ชจ๋“  ์ง€์›์ž์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ ์„œ๋ฅ˜์‹ฌ์‚ฌ ์„ฑ์ ๊ณผ ๋ฉด์ ‘์‹œํ—˜ ์„ฑ์  ์ค‘ ์ ์–ด๋„ ํ•˜๋‚˜๊ฐ€ ๋‹ค๋ฅธ ์ง€์›์ž๋ณด๋‹ค ๋–จ์–ด์ง€์ง€ ์•Š๋Š” ์ž๋งŒ ์„ ๋ฐœํ•œ๋‹ค๋Š” ์›์น™์„ ์„ธ์› ๋‹ค. ์ฆ‰, ์–ด๋–ค ์ง€์›์ž A์˜ ์„ฑ์ ์ด ๋‹ค๋ฅธ ์–ด๋–ค ์ง€์›์ž B์˜ ์„ฑ์ ์— ๋น„ํ•ด ์„œ๋ฅ˜ ์‹ฌ์‚ฌ ๊ฒฐ๊ณผ์™€ ๋ฉด์ ‘ ์„ฑ์ ์ด ๋ชจ๋‘ ๋–จ์–ด์ง„๋‹ค๋ฉด A๋Š” ๊ฒฐ์ฝ” ์„ ๋ฐœ๋˜์ง€ ์•Š๋Š”๋‹ค.

์ด๋Ÿฌํ•œ ์กฐ๊ฑด์„ ๋งŒ์กฑ์‹œํ‚ค๋ฉด์„œ, ์ง„์˜ ์ฃผ์‹ํšŒ์‚ฌ๊ฐ€ ์ด๋ฒˆ ์‹ ๊ทœ ์‚ฌ์› ์ฑ„์šฉ์—์„œ ์„ ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ์‹ ์ž…์‚ฌ์›์˜ ์ตœ๋Œ€ ์ธ์›์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ
์ฒซ์งธ ์ค„์—๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T(1 โ‰ค T โ‰ค 20)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ฒซ์งธ ์ค„์— ์ง€์›์ž์˜ ์ˆซ์ž N(1 โ‰ค N โ‰ค 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ ์ค„์—๋Š” ๊ฐ๊ฐ์˜ ์ง€์›์ž์˜ ์„œ๋ฅ˜์‹ฌ์‚ฌ ์„ฑ์ , ๋ฉด์ ‘ ์„ฑ์ ์˜ ์ˆœ์œ„๊ฐ€ ๊ณต๋ฐฑ์„ ์‚ฌ์ด์— ๋‘๊ณ  ํ•œ ์ค„์— ์ฃผ์–ด์ง„๋‹ค. ๋‘ ์„ฑ์  ์ˆœ์œ„๋Š” ๋ชจ๋‘ 1์œ„๋ถ€ํ„ฐ N์œ„๊นŒ์ง€ ๋™์„์ฐจ ์—†์ด ๊ฒฐ์ •๋œ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.

์ถœ๋ ฅ
๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ๋Œ€ํ•ด์„œ ์ง„์˜ ์ฃผ์‹ํšŒ์‚ฌ๊ฐ€ ์„ ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ์‹ ์ž…์‚ฌ์›์˜ ์ตœ๋Œ€ ์ธ์›์ˆ˜๋ฅผ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•œ๋‹ค.

1. ์•„์ด๋””์–ด

๐Ÿ’ก ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ผ๋„ ํฌ๋ฉด ๋ถ™์„ ์ˆ˜ ์žˆ์Œ
๐Ÿ’ก ์„œ๋ฅ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋“ฑ์ˆ˜๋ฅผ ์ •๋ ฌํ•จ
๐Ÿ’ก 1,2,3,4,5 ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ์œผ๋‹ˆ, ๋ฉด์ ‘์€ ๋ฐฐ์—ด ์ˆœ์„œ๋Œ€๋กœ ๊ฐ€๋ฉด์„œ ์•ž๋ณด๋‹ค ์ž‘์€ ๋“ฑ์ˆ˜๊ฐ€ ์žˆ์œผ๋ฉด cnt+1์„ ํ•ด์ฃผ๊ณ , ๊ธฐ์ค€์„ ์ž์‹ ์˜ ๋“ฑ์ˆ˜๋กœ ๊ฐฑ์‹ ํ•จ
( ์•ž์— ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์—์„œ ๋‚˜์˜จ ์ตœ๊ณ  ๋ฉด์ ‘ ๋“ฑ์ˆ˜๋ณด๋‹ค ๋” ๋†’์•„์•ผ์ง€๋งŒ ํ•ฉ๊ฒฉํ•  ์ˆ˜ ์žˆ์Œ)

2. ํ•ต์‹ฌ ํ’€์ด

  1. ์„œ๋ฅ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋“ฑ์ˆ˜๋ฅผ ์ •๋ ฌํ•จ
Arrays.sort(arr, new Comparator<int[]>() {
	@Override
	public int compare(int[] o1, int[] o2) {
		return o1[0] - o2[0];
	}
});
  1. 1,2,3,4,5 ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ์œผ๋‹ˆ, ๋ฉด์ ‘์€ ๋ฐฐ์—ด ์ˆœ์„œ๋Œ€๋กœ ๊ฐ€๋ฉด์„œ ์•ž๋ณด๋‹ค ์ž‘์€ ๋“ฑ์ˆ˜๊ฐ€ ์žˆ์œผ๋ฉด cnt+1์„ ํ•ด์ฃผ๊ณ , ๊ธฐ์ค€์„ ์ž์‹ ์˜ ๋“ฑ์ˆ˜๋กœ ๊ฐฑ์‹ ํ•จ
int cnt = 1;
int min = arr[0][1];
for(int i=1; i<n; i++) {
	if(min > arr[i][1]) {
		cnt++;
		min = arr[i][1];
	}
}
			
bw.write(cnt+"");
bw.write("\n");

3. ์ฝ”๋“œ

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.Comparator;

public class BOJ_1946 {

	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		int tc = Integer.parseInt(br.readLine());
		
		while(tc-->0) {
			int n = Integer.parseInt(br.readLine());
			
			int[][] arr = new int[n][2];
			
			for(int i=0; i<n; i++) {
				String[] s = br.readLine().split(" ");
				arr[i][0] = Integer.parseInt(s[0]);
				arr[i][1] = Integer.parseInt(s[1]);
			}
			
			Arrays.sort(arr, new Comparator<int[]>() {
				@Override
				public int compare(int[] o1, int[] o2) {
					return o1[0] - o2[0];
				}
			});
			
			int cnt = 1;
			int min = arr[0][1];
			for(int i=1; i<n; i++) {
				if(min > arr[i][1]) {
					cnt++;
					min = arr[i][1];
				}
			}
			
			bw.write(cnt+"");
			bw.write("\n");
		}
		
		bw.flush();
		
	}

}

4. ๊ฒฐ๊ณผ

์„ฑ๊ณตโœจ

profile
๐ŸŒฑ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž๐ŸŒฑ

0๊ฐœ์˜ ๋Œ“๊ธ€