๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“š ์ „๊ณต ๊ณต๋ถ€/๋ฌธ์ œํ•ด๊ฒฐ๊ธฐ๋ฒ•

[๋ฌธ์ œํ•ด๊ฒฐ๊ธฐ๋ฒ•] 7. ์ด๋ถ„ ํƒ์ƒ‰

1. ํƒ์ƒ‰

 

์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ N๊ฐœ์˜ ์ •์ˆ˜ ๋ฐฐ์—ด A[0], ..., A[N-1]์ด ์žˆ๋‹ค. X๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, A[i] = X๋ผ๋ฉด i๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜ find(N, X)๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ด ํ•จ์ˆ˜๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ compare(i, val)์„ ํ˜ธ์ถœํ•˜๋Š”๋ฐ, ์ด๋Š” A[i]=val์ด๋ฉด 0, A[i] < val์ด๋ฉด 1, A[i] > val์ด๋ฉด -1์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. N์€ ์ตœ๋Œ€ 100์ด๋‹ค.

 

int find(int sub, int N, int X) {
	int start = 0, end = N-1, t; 
	while (start <= end){
		int mid = (start+end)/2;
		int v = compare(mid, X); 
		if (v > 0) start = mid + 1;  // ๊ธฐ์ค€๊ฐ’๋ณด๋‹ค ์ž‘์œผ๋ฉด start๋ฅผ ๋‹น๊ธฐ๊ธฐ
		else if (v) end = mid - 1; // ๊ธฐ์ค€๊ฐ’๋ณด๋‹ค ํฌ๋ฉด end๋ฅผ ๋‹น๊ธฐ๊ธฐ
		else return mid;
	}
	return -1;
}

 

 

์˜ˆ๋ฅผ ๋“ค์–ด, A[] = {3, 4, 7, 9, 23, 110}์ด๊ณ  X = 4์ผ ๋•Œ,

start = 0, end = 5. ์ฒซ mid ๊ฐ’์€ 5/2 = 2.

compare(2, 4) : A[2] = 7 > 4์ด๊ณ , ๋ฆฌํ„ด๊ฐ’์€ -1. end = mid - 1 = 1

start = 0, end = 1. mid ๊ฐ’์€ 1/2 = 0.

compare(0, 4) : A[0] = 3 < 4์ด๋ฏ€๋กœ, ๋ฆฌํ„ด๊ฐ’์€ 1. start = mid + 1 = 1

start = 1, end = 1. mid ๊ฐ’์€ 2/2 = 1.

compare(1, 4) : A[1] = 4 == 4์ด๋ฏ€๋กœ, ๋ฆฌํ„ด๊ฐ’์€ 0. ๋”ฐ๋ผ์„œ return mid (= 1).

 

 

2. ๊ฒฝ๋น„์‹ค

 

์ˆ˜์ง์„  ์œ„์— n์ฑ„์˜ ์ง‘์ด ์žˆ๊ณ , ๊ฐ ์ง‘ i์˜ ์ขŒํ‘œ๋Š” ์ •์ˆ˜ xi๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์— k๊ฐœ์˜ ๊ฒฝ๋น„์‹ค์„ ๋†“์œผ๋ ค๊ณ  ํ•˜๋Š”๋ฐ, ๊ฒฝ๋น„์‹ค์€ ์ •์ˆ˜ ์ขŒํ‘œ ์œ„์— ๋†“์„ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ™์€ ์ขŒํ‘œ ์œ„์— ์ง‘๊ณผ ๊ฒฝ๋น„์‹ค์ด ๋™์‹œ์— ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ๊ฒฝ๋น„์‹ค์„ ๋†“์„ ๋•Œ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๊ฒฝ๋น„์‹ค์—์„œ ๊ฐ€์žฅ ๋จผ ์ง‘์˜ ๊ฑฐ๋ฆฌ๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. n์ฑ„์˜ ์ง‘์— k๊ฐœ์˜ ๊ฒฝ๋น„์‹ค์„ ํšจ์œจ์ ์œผ๋กœ ๋ฐฐ์น˜ํ–ˆ์„ ๋•Œ, ๊ฒฝ๋น„์‹ค์—์„œ ์ง‘๊นŒ์ง€ ๊ฐ€์žฅ ๋จผ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ง‘ ๊ฐœ์ˆ˜ n & ๊ฒฝ๋น„์‹ค ๊ฐœ์ˆ˜ k๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ , ์ง‘์˜ ์ขŒํ‘œ๋ฅผ ์ž…๋ ฅ๋ฐ›์€ ํ›„

์ง‘์—์„œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฒฝ๋น„์‹ค๊นŒ์ง€์˜ ์ตœ๋Œ€ ๊ฑฐ๋ฆฌ์˜ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

 

brute force

์ฒซ๋ฒˆ์งธ ์ง‘์—์„œ ๋งˆ์ง€๋ง‰ ์ง‘๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ = M

(M,k)๊ฐœ ์กฐํ•ฉ์„ ๋ชจ๋‘ ํ•ด๋ณธ๋‹ค -> O(M^k)

 

์ฐฉ์•ˆ์ 

๊ฒฝ๋น„์‹ค์ด k๊ฐœ๋ผ๋ฉด, ์ง‘์—์„œ ๊ฒฝ๋น„์‹ค๊นŒ์ง€์˜ ์ตœ๋Œ€ ๊ฑฐ๋ฆฌ๋Š” M/2k ๋ณด๋‹ค ํด ์ˆ˜ ์—†๋‹ค. ์ฆ‰, ๊ฐ™์€ ๊ฐ„๊ฒฉ์œผ๋กœ ๋†“๊ธฐ๋งŒ ํ•˜๋ฉด ๋จ

๊ฒฝ๋น„์‹ค์ด ํ•˜๋‚˜ ๋” ๋Š˜์–ด๋‚˜๋ฉด ์ตœ๋Œ€ ๊ฑฐ๋ฆฌ๋Š” ํ™•์‹คํžˆ ์ค„์–ด๋“ ๋‹ค.

๋ชจ๋“  ์ง‘์—์„œ ๊ฒฝ๋น„์‹ค๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ๊ฐ€ d๊ฐ€ ๋˜๊ฒŒ ๊ฒฝ๋น„์‹ค์„ ๋†“์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด,

d+e๊ฐ€ ๋˜๊ฒŒ๋„ ๋†“์„ ์ˆ˜ ์žˆ๋‹ค. (e๋Š” ์–‘์ˆ˜)

 

ํ’€์ด

์ง‘๋“ค์„ x์ขŒํ‘œ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค. ๋งจ ์™ผ์ชฝ(์ฒ˜์Œ)์ง‘๋ถ€ํ„ฐ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ฝ์–ด๋‚˜๊ฐ€๋ฉด์„œ,

k๊ฐœ์˜ ๊ฒฝ๋น„์‹ค์„ ๋†“์•„์„œ ๊ฐ€์žฅ ๋จผ ์ง‘๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ๊ฐ€ d๊ฐ€ ๋˜๋Š”์ง€๋ฅผ ์ ๊ฒ€ํ•œ๋‹ค.

๋งจ ์™ผ์ชฝ ์ง‘์„ ์ƒ๊ฐํ•ด๋ณด๋ฉด ๊ฒฝ๋น„์‹ค์€ ์ด ์ง‘ ์ขŒํ‘œ์—์„œ d๋งŒํผ ์˜ค๋ฅธ์ชฝ์— ๋–จ์–ด์ง„ ๊ณณ์— ์žˆ์„ ๊ฒƒ์ด๋‹ค.

์ด ๊ฒฝ๋น„์‹ค๋กœ๋ถ€ํ„ฐ ๊ฑฐ๋ฆฌ๊ฐ€ d ์ด๋‚ด์ธ ์ง‘์„ ๋ชจ๋‘ ์ œ๊ฑฐํ•œ ๋‹ค์Œ,

๋‚จ์€ ์ง‘์— ๋Œ€ํ•ด์„œ ๋˜‘๊ฐ™์€ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋ฉด ํ•„์š”ํ•œ ๊ฒฝ๋น„์‹ค์˜ ์ˆ˜๊ฐ€ ๋‚˜์˜จ๋‹ค.

 

๋งŒ์•ฝ ๊ฒฝ๋น„์‹ค ์ˆ˜๊ฐ€ k๊ฐœ ์ดํ•˜๋ผ๋ฉด, d๊ฐ’(๊ฑฐ๋ฆฌ)์„ ์ค„์—ฌ์„œ ๋‹ต์ธ์ง€ ์ ๊ฒ€ํ•œ๋‹ค.

๋งŒ์•ฝ ๊ฒฝ๋น„์‹ค ์ˆ˜๊ฐ€ k๊ฐœ ์ดˆ๊ณผ๋ผ๋ฉด, d๊ฐ’(๊ฑฐ๋ฆฌ)์„ ๋Š˜๋ ค์„œ ๋‹ต์ธ์ง€ ์ ๊ฒ€ํ•œ๋‹ค. (์ด์ง„ํƒ์ƒ‰)

 

์ด ๋ฌธ์ œ๋Š” ๋‹ต์„ ๊ตฌํ•˜๊ธฐ๋Š” ์–ด๋ ต์ง€๋งŒ, ๋‹ต์˜ ํ›„๋ณด๋ฅผ ์ฃผ์—ˆ์„ ๋•Œ ์ด ๋‹ต์ด ์ฐธ์ธ์ง€ ๊ฑฐ์ง“์ธ์ง€ O(n)์‹œ๊ฐ„์— ํŒ์ • ๊ฐ€๋Šฅํ•˜๋‹ค.

์ผ๋‹จ ๋‹ต์ด d๋ผ๋ฉด d ์ด์ƒ์€ ๋ฌด์กฐ๊ฑด ๋‹ต์ž„.

๋”ฐ๋ผ์„œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์ตœ์†Œ์˜ d๋ฅผ ์ฐพ์•„์•ผ ํ•œ๋‹ค.

 

 

3. Heron's method

 

sqrt(2)์˜ ๊ฐ’์€?

1์€ ์•„๋‹˜. (1^2 = 1. 2๋ณด๋‹ค ์ž‘๋‹ค)

2/1 = 2๋„ ์•„๋‹˜. (2^2 = 4. 2๋ณด๋‹ค ํฌ๋‹ค)

(1+2/1) / 2 = 3/2๋„ ์•„๋‹˜. ํ•˜์ง€๋งŒ ๋‹ต์— ์กฐ๊ธˆ ๋” ๊ทผ์ ‘ํ•จ

๊ทธ๋ ‡๋‹ค๋ฉด, (3/2 + 2/(3/2)) / 2 = 17/12 ๋Š” ๋‹ต์— ๋” ๊ทผ์ ‘ํ•จ

 

x < sqrt(2) ๋ผ๋ฉด, 2/x > sqrt(2) ์ด๋ฏ€๋กœ

(x + 2/x) / 2๋Š” ๋ณด๋‹ค ๋” sqrt(2)์— ๊ทผ์ ‘ํ•ด ์žˆ๋‹ค.

 

 

 

4. ํฌ๋ฃจ์Šค์ปฌ์˜ ๊ณต (BOJ 1396)

https://www.acmicpc.net/problem/1396

๋‚œ์ด๋„ ํ”Œ๋ ˆ1..ใ…‹ใ…‹

์˜ˆ์ œ ์ž…๋ ฅ์„ ๋ณด๋ฉด,

๊ฐ€์ค‘๊ทธ๋ž˜ํ”„ G=(V, E, W)๊ฐ€ ์ฃผ์–ด์ง€๊ณ , ์—ฌ๊ธฐ์— Q๊ฐœ์˜ ์งˆ์˜ (u,v)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

์ด ์งˆ์˜์— ๋Œ€ํ•œ ๋‹ต์€ ์ •์ˆ˜ c์ธ๋ฐ,

์ด๋Š” w(e) <= c์ธ edge๋งŒ ์ด์šฉํ•˜์—ฌ u์™€ v๋ฅผ ์ด์„ ์ˆ˜ ์žˆ๋Š” ์ตœ์†Ÿ๊ฐ’์ด๋‹ค.

 

์ฐธ๊ณ  : ํฌ๋ฃจ์Šค์ปฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Kruskal Algorithm)
๊ฐ€์ค‘์น˜๊ฐ€ ์žˆ๋Š” ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„๋ฅผ ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ๋กœ ๋งŒ๋“œ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜.
(์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ = ๊ฐ€์ค‘์น˜๊ฐ€ ์ตœ์†Œ์ด๊ณ  ์‚ฌ์ดํด์ด ์—†๋Š” ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„)
์‚ฌ์ดํด์ด ์—†์œผ๋ฏ€๋กœ ๊ฐ„์„ ์˜ ์ˆ˜ = (์ •์  ์ˆ˜ - 1)
ํฌ๋ฃจ์Šค์ปฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ Greedy์— ์†ํ•˜๋ฉฐ, ๋งค๋ฒˆ ์ˆœํ™˜์ด ๋˜์ง€ ์•Š๋„๋ก ๊ฐ€์ค‘์น˜๊ฐ€ ๊ฐ€์žฅ ์ ์€ ๋‹ค์Œ ๊ฐ„์„ ์„ ์„ ํƒ.
์‹œ๊ฐ„๋ณต์žก๋„ O(E log N)

 

ํ’€์ด 1. ํฌ๋ฃจ์Šค์ปฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ * Q

๊ฐ ์งˆ์˜๋งˆ๋‹ค ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋Œ๋ฆฌ๋ฉด์„œ, u์™€ v๊ฐ€ ์—ฐ๊ฒฐ๋˜๋Š” ์ˆœ๊ฐ„ ์ด ๋•Œ edge์˜ ๊ฐ€์ค‘์น˜ ๊ฐ’์ด ๋‹ต c์ด๋‹ค.

ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— O(|E| log |N|).

edge์˜ ๊ฐ€์ค‘์น˜ ์ •๋ ฌ์— O(|E| log |N|).

edge๋ฅผ ์ฝ์œผ๋ฉฐ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ์— O(|E|)

์งˆ์˜๋ฅผ ์ด Q๋ฒˆ ๋Œ๋ฆฌ๋ฏ€๋กœ ์ด O( Q|E| log |N| )

 

๋™์ผํ•œ ๊ทธ๋ž˜ํ”„์— ๋Œ€ํ•ด ํฌ๋ฃจ์Šค์ปฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ Q๋ฒˆ ์‹คํ–‰์‹œํ‚ค๋Š” ๊ฒƒ ๋ณด๋‹ค ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์žˆ์„๊นŒ?

 

ํ’€์ด 2. ์ด๋ถ„ํƒ์ƒ‰

lo = 0, hi = ๊ฐ€์ค‘์น˜ ์ตœ๋Œ“๊ฐ’, c๋Š” ๊ตฌ๊ฐ„ (lo, hi]์— ์กด์žฌ.

mid = (lo + hi) / 2.

w(e) <= mid ์ธ edge๋งŒ์œผ๋กœ u, v๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€?

-> ํฌ๋ฃจ์Šค์ปฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ฐ€์ค‘์น˜๊ฐ€ ์ตœ๋Œ€mid์ธ edge๋“ค๋งŒ ์‚ฌ์šฉํ•˜๋ฉด ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

๋งŒ์•ฝ u์™€ v๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด, c๋Š” (lo, mid] ์•ˆ์— ์žˆ๋‹ค.

๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด, c๋Š” (mid, hi] ์•ˆ์— ์žˆ๋‹ค.

 

ํ’€์ด2 ๊ฒ€ํ†  -> ๋…ธ๋“œ๊ฐ€ |V|๊ฐœ์ผ ๋•Œ,

ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— O(|E| log |N|).

ํฌ๋ฃจ์Šค์ปฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ log |E| ๋ฒˆ ๋Œ๋ฆฌ๋ฉด = O(|E| log |V|). ์ด ๋•Œ edge ๊ฐ€์ค‘์น˜๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์žฌ์ •๋ ฌํ•  ํ•„์š” X.

์งˆ์˜๊ฐ€ Q๊ฐœ์ด๋ฏ€๋กœ ์ด O( Q|E| log |N| ).

์–ด๋ผ ๋˜‘๊ฐ™์ž–์•„?

 

์ด์ง„ํƒ์ƒ‰ ๋ณด์™„

Q๊ฐœ์˜ ์งˆ์˜๋ฅผ ํ•˜๋‚˜์”ฉ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ง๊ณ , ์งˆ์˜์˜ ๊ฐ™์€ ๋‹จ๊ณ„๋ฅผ ๋™์‹œ์— ์ง„ํ–‰ํ•˜๋ฉด?

์˜ˆ๋ฅผ ๋“ค์–ด Q = 4์ผ ๋•Œ,

์ฒ˜์Œ์—๋Š” Q1~Q4๊นŒ์ง€ ๋ชจ๋‘ lo, hi๊ฐ€ ๊ฐ™๋‹ค. mid๋„ ๊ฐ™๊ณ ,

ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ•œ ๋ฒˆ ๋Œ๋ ค์„œ ๊ฐ€์ค‘์น˜๊ฐ€ mid์ธ ์—์ง€๊นŒ์ง€ ์ฝ์œผ๋ฉด ์ข…๋ฃŒ. (1๋ฒˆ์œผ๋กœ 4๊ฐœ์˜ ์งˆ์˜ ์ฒ˜๋ฆฌ)

 

๋‘๋ฒˆ์งธ์—๋Š” Q1,Q2๋Š” ๋‹ต์ด mid๋ณด๋‹ค ์ปค์•ผํ•˜๊ณ , Q3,Q4๋Š” ๋‹ต์ด mid๋ณด๋‹ค ์ž‘์•„์•ผํ•œ๋‹ค๊ณ  ํ•˜์ž.

ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ•œ๋ฒˆ ๋” ๋Œ๋ฆฌ๋Š”๋ฐ

์ด ๋•Œ ์ฝ๊ณ ์žˆ๋Š” ์—์ง€์˜ ๊ฐ€์ค‘์น˜๊ฐ€ (lo+mid)/2์ธ ์‹œ์ , (mid+hi)/2์ธ ์‹œ์ ์—์„œ ๊ฐ๊ฐ Q1, Q2 ๊ทธ๋ฆฌ๊ณ  Q3,Q4๋ฅผ ๊ฒ€ํ† .

 

์„ธ๋ฒˆ์งธ์—์„œ๋„ mid๊ฐ’์ด ๊ฐ™์€ ์งˆ์˜๋ผ๋ฆฌ ๋ชจ์€ ๋’ค,

ํ•œ๋ฒˆ์˜ ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ mid ๊ฐ’์„ ์ฒ˜๋ฆฌ.

 

์‹œ๊ฐ„๋ณต์žก๋„

์ด๋ถ„ ํƒ์ƒ‰์„ ๋ชจ๋‘ log |E| ๋ฒˆ ์ง„ํ–‰ํ•˜๋Š”๊ฑด ๋งˆ์ฐฌ๊ฐ€์ง€์ด์ง€๋งŒ,

๋งค ๋‹จ๊ณ„๋งˆ๋‹ค ํฌ๋ฃจ์Šค์ปฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ 1๋ฒˆ๋งŒ ์ง„ํ–‰ํ•˜๋ฉฐ,

ํ•œ๋ฒˆ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ ์งˆ์˜์˜ ์ค‘๊ฐ„๊ฐ’์„ ์ง€๋‚˜๊ฐˆ ๋•Œ ๋งˆ๋‹ค ๋ฒ”์œ„๋ฅผ ๊ฐฑ์‹ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—

ํฌ๋ฃจ์Šค์ปฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ด ์ˆ˜ํ–‰์‹œ๊ฐ„์€ O( Q+|E| ). = ์—์ง€๋ฅผ ๋‹ค ์ฝ๊ณ  Q๊ฐœ์˜ ์งˆ์˜ ๋ฒ”์œ„ ์—…๋ฐ์ดํŠธ

์ „์ฒด ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O( (Q+|E|) log |E| ).

 

 

5. ๋ฏผํ˜์ด์˜ ๊ฒŒ์ž„ ํŒŒํ‹ฐ (BOJ 16976)

https://www.acmicpc.net/problem/16976

ํ”Œ๋ ˆ2..

N๊ฐœ์˜ ๋…ธ๋“œ๊ฐ€ ์ฃผ์–ด์ง€๊ณ  ๊ฐ ๋…ธ๋“œ์—๋Š” 1~M๊นŒ์ง€์˜ ์ˆ˜๊ฐ€ ์“ฐ์—ฌ์žˆ๋‹ค.

1๋ฒˆ๋ถ€ํ„ฐ Q๋ฒˆ๊นŒ์ง€ ๋ฒˆํ˜ธ๊ฐ€ ๋งค๊ฒจ์ง„ ์—์ง€๋“ค์ด ์ฃผ์–ด์ง„๋‹ค.

๋…ธ๋“œ์— ์“ฐ์ธ ์ˆซ์ž ๊ฐ๊ฐ๋งˆ๋‹ค 1๋ฒˆ ์—์ง€๋ถ€ํ„ฐ i๋ฒˆ ์—์ง€๊นŒ์ง€๋ฅผ ์ด์šฉํ•ด์„œ ๊ฐ™์€ ์ˆซ์ž์ธ ๋…ธ๋“œ๋“ค์„ ๋ชจ๋‘ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”

์ตœ์†Œ์˜ i ๊ฐ’์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ.

ํ’€์ด : ์ด์ง„ํƒ์ƒ‰

 

์ˆ˜ i๊ฐ€ ์“ฐ์ธ ๋…ธ๋“œ๊ฐ€ A,B,C๋ผ๊ณ  ํ•˜๋ฉด

์ด ์งˆ๋ฌธ์€ A,B,C๊ฐ€ ๋ชจ๋‘ ์—ฐ๊ฒฐ๋˜๋Š” ์ตœ์ดˆ์˜ ์‹œ์ ์„ ๋ฌป๋Š” ๊ฒƒ์ด๋‹ค.

๋…ธ๋“œ A์™€ ๋…ธ๋“œ B๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด์žˆ๊ณ , A์™€ C๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด์žˆ๋‹ค๋ฉด, B์™€ C๋„ ์—ฐ๊ฒฐ๋˜์–ด์žˆ๋Š” ์ƒํƒœ์ด๋‹ค.

๋”ฐ๋ผ์„œ ์งˆ๋ฌธ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ”๊พผ๋‹ค.

 

1๋ฒˆ๋ถ€ํ„ฐ mid๋ฒˆ๊นŒ์ง€์˜ ์—์ง€๋กœ A์™€ B๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?

1๋ฒˆ๋ถ€ํ„ฐ mid๋ฒˆ๊นŒ์ง€์˜ ์—์ง€๋กœ A์™€ C๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?

 

i๊ฐ€ ๊ฐ™์€ ๋…ธ๋“œ์— ๋Œ€ํ•ด ์งˆ๋ฌธ์„ ์ด๋ ‡๊ฒŒ ํ•œ ๋’ค, ์งˆ์˜์˜ ๋‹ต ์ค‘ ์ตœ๋Œ“๊ฐ’์ด A,B,C ๋ชจ๋‘๊ฐ€ ์—ฐ๊ฒฐ๋˜๋Š” ์‹œ์ ์ด ๋œ๋‹ค.

๋ชจ๋“  ์งˆ๋ฌธ์˜ ๊ฐœ์ˆ˜๋Š” ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜๋ณด๋‹ค ๋งŽ์ง€ ์•Š๋‹ค.