Algorithm
ํต์ ๋ ฌ์ด๋? ํต์ ๋ ฌ(Quick-Sort)์ ํ๊ท ์๋ (NlogN)์ ์๋ํ๋ ๋งค์ฐ ๋น ๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋ถํ ์ ๋ณต(Divide & Conquer) ์๊ณ ๋ฆฌ์ฆ์ ํ๋๋ก ๋ค๋ฅธ ์์์ ๋น๊ต๋ง์ผ๋ก ์ ๋ ฌ์ ์ํํ๋ ๋น๊ต ์ ๋ ฌ์ ์ํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์ ๋ ฌ๊ณผ์ ํต์ ๋ ฌ์ ์์ด์ ํผ๋ด(pivot)์ ๊ธฐ์ค์ผ๋ก ์ข์ธก์๋ ํผ๋ด๋ณด๋ค ์์ ๊ฐ์ ๋๊ณ ์ฐ์ธก์๋ ํผ๋ด๋ณด๋ค ํฐ ๊ฐ์ ๋๋ ๋ฐฉ์์ผ๋ก ์ ๋ ฌํ๋ค. ํผ๋ด์ ์ ํํ๋ค. left๋ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ๊ฐ๋ฉด์ ํผ๋ด๋ณด๋ค ๋ ํฐ ์๋ฅผ ์ฐพ๋๋ค. right๋ ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก ๊ฐ๋ฉด์ ํผ๋ด๋ณด๋ค ๋ ์์ ์๋ฅผ ์ฐพ๋๋ค. ์ฐพ์ ์ง์ ์์ left์ right๋ฅผ ๊ตํํ๋ค. ์ ๊ณผ์ ์ left๋ right๊ฐ ๋ฐ๋ ๋๊น์ง ๋ฐ๋ณตํ๋ค. left๋ right๊ฐ ๋ฐ๋๋ฉด ํผ๋ด๊ณผ right๋ฅผ ๊ตํํ๋ค. ์ ๊ณผ์ ์ ๊ฑฐ..
Algorithm/BOJ
๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋? "๋งค ์ ํ์์ ์ง๊ธ ์ด ์๊ฐ ๋น์ฅ ์ต์ ์ธ ๋ต์ ์ ํํ์ฌ ์ ํฉํ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ์"๋ผ๋ ๋ชจํ ๋ฅผ ๊ฐ์ง๋ ์๊ณ ๋ฆฌ์ฆ ์ค๊ณ ๊ธฐ๋ฒ์ด๋ค. ๊ฑฐ์ค๋ฆ๋์ ๋๋ ค์ฃผ๋ ๋ฌธ์ ๋ฅผ ์๊ฐํด๋ณด์. ์ฐ๋ฆฌ๋ ๋๋ถ๋ถ ๊ฑฐ์ค๋ฆ๋์ ๋๋ ค์ค๋ ํฐ ๋จ์์ ๋์ ๋ถํฐ ๊ฑฐ์ฌ๋ฌ์ค๋ค. ex ) 500์์ ๋๋ ค์ค์ผ ํ๋ค๋ฉด, 100์์ 5๊ฐ ์ฃผ๋ ๊ฒ๋ณด๋ค 500์์ 1๊ฐ ์ฃผ๋ ํธ์ด ๋ ํธํ๋ค. ํ์ง๋ง ๋ง์ฝ์ ๋์ ์ ๋จ์๊ฐ 100, 250, 300 ์ด๋ผ๋ฉด, (300 * 1) + (100 * 2) ๋ก 3๊ฐ๋ก ๊ฑฐ์ฌ๋ฌ์ฃผ๋ ๊ฒ๋ณด๋ค๋ 250 * 2 ์ ๋ฐฉ๋ฒ์ผ๋ก 2๊ฐ๋ก ๊ฑฐ์ฌ๋ฌ์ฃผ๋ ๊ฒ์ด ๋ ์ต์ ์ ๋ฐฉ๋ฒ์ด๋ค. ๋ฐ๋ผ์ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ํญ์ ์ต์ ์ ํด๋ฅผ ์ ๊ณตํด์ฃผ๋ ๊ฒ์ ์๋๋ค. ํ์ง๋ง ๋ง์ฝ ์ด ์ํฉ์์ ํฐ ๋จ์์ ์๋ถํฐ ๊ฑฐ์ฌ๋ฌ์ค์ผํ๋ ์กฐ๊ฑด์ด ์กด์ฌํ ๋ ๊ทธ๋ฆฌ๋ ์..
Algorithm/BOJ
1931๋ฒ: ํ์์ค ๋ฐฐ์ (1,4), (5,7), (8,11), (12,14) ๋ฅผ ์ด์ฉํ ์ ์๋ค. www.acmicpc.net ๋ฌธ์ ํ ๊ฐ์ ํ์์ค์ด ์๋๋ฐ ์ด๋ฅผ ์ฌ์ฉํ๊ณ ์ ํ๋ N๊ฐ์ ํ์์ ๋ํ์ฌ ํ์์ค ์ฌ์ฉํ๋ฅผ ๋ง๋ค๋ ค๊ณ ํ๋ค. ๊ฐ ํ์ I์ ๋ํด ์์์๊ฐ๊ณผ ๋๋๋ ์๊ฐ์ด ์ฃผ์ด์ ธ ์๊ณ , ๊ฐ ํ์๊ฐ ๊ฒน์น์ง ์๊ฒ ํ๋ฉด์ ํ์์ค์ ์ฌ์ฉํ ์ ์๋ ํ์์ ์ต๋ ๊ฐ์๋ฅผ ์ฐพ์๋ณด์. ๋จ, ํ์๋ ํ๋ฒ ์์ํ๋ฉด ์ค๊ฐ์ ์ค๋จ๋ ์ ์์ผ๋ฉฐ ํ ํ์๊ฐ ๋๋๋ ๊ฒ๊ณผ ๋์์ ๋ค์ ํ์๊ฐ ์์๋ ์ ์๋ค. ํ์์ ์์์๊ฐ๊ณผ ๋๋๋ ์๊ฐ์ด ๊ฐ์ ์๋ ์๋ค. ์ด ๊ฒฝ์ฐ์๋ ์์ํ์๋ง์ ๋๋๋ ๊ฒ์ผ๋ก ์๊ฐํ๋ฉด ๋๋ค. ์
๋ ฅ ์ฒซ์งธ ์ค์ ํ์์ ์ N(1 ≤ N ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N+1 ์ค๊น์ง ๊ฐ ํ์์ ์ ๋ณด..
Algorithm/BOJ
11000๋ฒ: ๊ฐ์์ค ๋ฐฐ์ ์ฒซ ๋ฒ์งธ ์ค์ N์ด ์ฃผ์ด์ง๋ค. (1 ≤ N ≤ 200,000) ์ดํ N๊ฐ์ ์ค์ Si, Ti๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ Si < Ti ≤ 109) www.acmicpc.net ๋ฌธ์ ์๊ฐ์ ์ฒญ์ ๋ง์คํฐ ๊น์ข
ํ ์ ์๋์๊ฒ ์๋ก์ด ๊ณผ์ ๊ฐ ์ฃผ์ด์ก๋ค. ๊น์ข
ํ ์ ์๋ํํ
๋ Si์ ์์ํด์ Ti์ ๋๋๋ N๊ฐ์ ์์
์ด ์ฃผ์ด์ง๋๋ฐ, ์ต์์ ๊ฐ์์ค์ ์ฌ์ฉํด์ ๋ชจ๋ ์์
์ ๊ฐ๋ฅํ๊ฒ ํด์ผ ํ๋ค. ์ฐธ๊ณ ๋ก, ์์
์ด ๋๋ ์งํ์ ๋ค์ ์์
์ ์์ํ ์ ์๋ค. (์ฆ, Ti ≤ Sj ์ผ ๊ฒฝ์ฐ i ์์
๊ณผ j ์์
์ ๊ฐ์ด ๋ค์ ์ ์๋ค.) ์๊ฐ์ ์ฒญ ๋์ถฉํ ๊ฒ ์ฐ๋ฆฌ๋ฉด, ์ ์๋์ ๋์๋๋ฆฌ์! ์
๋ ฅ ์ฒซ ๋ฒ์งธ ์ค์ N์ด ์ฃผ์ด์ง๋ค. (1 ≤ N ≤ 200,000) ์ดํ N๊ฐ์ ์ค์ Si, Ti๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ Si < ..
Algorithm/PROGRAMMERS
https://programmers.co.kr/learn/courses/30/parts/12077 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์
๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์
๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr [ ๋ฌธ์ ] ์๋ง์ ๋ง๋ผํค ์ ์๋ค์ด ๋ง๋ผํค์ ์ฐธ์ฌํ์์ต๋๋ค. ๋จ ํ ๋ช
์ ์ ์๋ฅผ ์ ์ธํ๊ณ ๋ ๋ชจ๋ ์ ์๊ฐ ๋ง๋ผํค์ ์์ฃผํ์์ต๋๋ค. ๋ง๋ผํค์ ์ฐธ์ฌํ ์ ์๋ค์ ์ด๋ฆ์ด ๋ด๊ธด ๋ฐฐ์ด participant์ ์์ฃผํ ์ ์๋ค์ ์ด๋ฆ์ด ๋ด๊ธด ๋ฐฐ์ด completion์ด ์ฃผ์ด์ง ๋, ์์ฃผํ์ง ๋ชปํ ์ ์์ ์ด๋ฆ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. [ ์ ํ์ฌํญ ] ๋ง๋ผํค ๊ฒฝ๊ธฐ์ ์ฐธ์ฌํ ์ ์์ ์๋ 1๋ช
์ด์ 100..
Algorithm/BOJ
https://www.acmicpc.net/problem/1158 1158๋ฒ: ์์ธํธ์ค ๋ฌธ์ ์ฒซ์งธ ์ค์ N๊ณผ K๊ฐ ๋น ์นธ์ ์ฌ์ด์ ๋๊ณ ์์๋๋ก ์ฃผ์ด์ง๋ค. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net [๋ฌธ์ ] ์์ธํธ์ค ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ๋ค. 1๋ฒ๋ถํฐ N๋ฒ๊น์ง N๋ช
์ ์ฌ๋์ด ์์ ์ด๋ฃจ๋ฉด์ ์์์๊ณ , ์์ ์ ์ K(≤ N)๊ฐ ์ฃผ์ด์ง๋ค. ์ด์ ์์๋๋ก K๋ฒ์งธ ์ฌ๋์ ์ ๊ฑฐํ๋ค. ํ ์ฌ๋์ด ์ ๊ฑฐ๋๋ฉด ๋จ์ ์ฌ๋๋ค๋ก ์ด๋ฃจ์ด์ง ์์ ๋ฐ๋ผ ์ด ๊ณผ์ ์ ๊ณ์ํด ๋๊ฐ๋ค. ์ด ๊ณผ์ ์ N๋ช
์ ์ฌ๋์ด ๋ชจ๋ ์ ๊ฑฐ๋ ๋๊น์ง ๊ณ์๋๋ค. ์์์ ์ฌ๋๋ค์ด ์ ๊ฑฐ๋๋ ์์๋ฅผ (N, K)-์์ธํธ์ค ์์ด์ด๋ผ๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด (7, 3)-์์ธํธ์ค ์์ด์ ์ด๋ค. N๊ณผ K๊ฐ ์ฃผ์ด์ง๋ฉด (N, K)-์์ธํธ์ค ์์ด์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ..
Algorithm/PROGRAMMERS
https://programmers.co.kr/learn/courses/30/parts/12081 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์
๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์
๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr [๋ฌธ์ ] ํ๋ก๊ทธ๋๋จธ์ค ํ์์๋ ๊ธฐ๋ฅ ๊ฐ์ ์์
์ ์ํ ์ค์
๋๋ค. ๊ฐ ๊ธฐ๋ฅ์ ์ง๋๊ฐ 100%์ผ ๋ ์๋น์ค์ ๋ฐ์ํ ์ ์์ต๋๋ค. ๋, ๊ฐ ๊ธฐ๋ฅ์ ๊ฐ๋ฐ์๋๋ ๋ชจ๋ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ค์ ์๋ ๊ธฐ๋ฅ์ด ์์ ์๋ ๊ธฐ๋ฅ๋ณด๋ค ๋จผ์ ๊ฐ๋ฐ๋ ์ ์๊ณ , ์ด๋ ๋ค์ ์๋ ๊ธฐ๋ฅ์ ์์ ์๋ ๊ธฐ๋ฅ์ด ๋ฐฐํฌ๋ ๋ ํจ๊ป ๋ฐฐํฌ๋ฉ๋๋ค. ๋จผ์ ๋ฐฐํฌ๋์ด์ผ ํ๋ ์์๋๋ก ์์
์ ์ง๋๊ฐ ์ ํ ์ ์ ๋ฐฐ์ด progresses์ ๊ฐ ์์
์ ๊ฐ๋ฐ ์๋๊ฐ ์ ํ ..
Algorithm/BOJ
https://www.acmicpc.net/problem/9012 [๋ฌธ์ ] ๊ดํธ ๋ฌธ์์ด(Parenthesis String, PS)์ ๋ ๊ฐ์ ๊ดํธ ๊ธฐํธ์ธ ‘(’ ์ ‘)’ ๋ง์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ ๋ฌธ์์ด์ด๋ค. ๊ทธ ์ค์์ ๊ดํธ์ ๋ชจ์์ด ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด(Valid PS, VPS)์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ํ ์์ ๊ดํธ ๊ธฐํธ๋ก ๋ “( )” ๋ฌธ์์ด์ ๊ธฐ๋ณธ VPS ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๋ง์ผ x ๊ฐ VPS ๋ผ๋ฉด ์ด๊ฒ์ ํ๋์ ๊ดํธ์ ๋ฃ์ ์๋ก์ด ๋ฌธ์์ด “(x)”๋ VPS ๊ฐ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ VPS x ์ y๋ฅผ ์ ํฉ(concatenation)์ํจ ์๋ก์ด ๋ฌธ์์ด xy๋ VPS ๊ฐ ๋๋ค. ์๋ฅผ ๋ค์ด “(())()”์ “((()))” ๋ VPS ์ด์ง๋ง “(()(”, “(())()))” , ๊ทธ๋ฆฌ๊ณ “(()” ๋ ..
Algorithm/BOJ
https://www.acmicpc.net/problem/10828 10828๋ฒ: ์คํ ์ฒซ์งธ ์ค์ ์ฃผ์ด์ง๋ ๋ช
๋ น์ ์ N (1 ≤ N ≤ 10,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๋ช
๋ น์ด ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ์ ์๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. ๋ฌธ์ ์ ๋์์์ง www.acmicpc.net ๋ฐฑ์ค ์๊ณ ๋ฆฌ์ฆ 10828๋ฒ ์คํ๋ฌธ์ [๋ฌธ์ ] ์ ์๋ฅผ ์ ์ฅํ๋ ์คํ์ ๊ตฌํํ ๋ค์, ์
๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ๋ช
๋ น์ ์ฒ๋ฆฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ๋ช
๋ น์ ์ด ๋ค์ฏ ๊ฐ์ง์ด๋ค. push X: ์ ์ X๋ฅผ ์คํ์ ๋ฃ๋ ์ฐ์ฐ์ด๋ค. pop: ์คํ์์ ๊ฐ์ฅ ์์ ์๋ ์ ์๋ฅผ ๋นผ๊ณ , ๊ทธ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ์คํ์ ๋ค์ด์๋ ์ ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅํ๋ค. size: ์คํ์ ๋ค์ด์๋ ์ ์์ ๊ฐ์..