๐ค PS(Problem Solving)/๋ฐฑ์ค(BOJ)
[๋ฐฑ์ค/c++] 17298๋ฒ - ์คํฐ์
๋ฌธ์ 17298๋ฒ: ์คํฐ์ ์ฒซ์งธ ์ค์ ์์ด A์ ํฌ๊ธฐ N (1 ≤ N ≤ 1,000,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ์ ์์ด A์ ์์ A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)์ด ์ฃผ์ด์ง๋ค. www.acmicpc.net ํ์ด ๋ถ๋ฅ : ํ, ์คํ ๋ฒกํฐ(arr)์ ์คํ(s)์ ์ด์ฉํฉ๋๋ค. ์ ๋ ฅ ์์ด์ ๋ฒกํฐ์, ์คํ์ ๋ฒกํฐ์ index๋ฅผ ์ ์ฅํฉ๋๋ค. ๋ฒกํฐ์ ๊ธธ์ด๋งํผ for๋ฌธ์ ๋๋ฉด์, arr[i](ํ์ฌ ๊ฐ) > arr[s.top()](์ด์ ๊ฐ) ์ด๋ผ๋ฉด ์คํฐ์๋ฅผ ์ฐพ์ ๊ฒ์ด๋ฏ๋ก ํ์ฌ ๊ฐ์ ์ ๋ต๋ฒกํฐ์ ๋ฃ์ด์ฃผ๊ณ ์คํ์ popํด์ค๋๋ค. ์ดํ ์์ด์ ๊ธธ์ด๋งํผ ๋ฐ๋ณต. ์ฝ๋(O(nm)) *O(nm)์ด ์๋๋ผ๋ฉด ์๋ ค์ฃผ์ธ์. ๊ฐ์ฌํฉ๋๋ค(--)(__)*
[๋ฐฑ์ค/c++] 1021๋ฒ - ํ์ ํ๋ ํ
๋ฌธ์ 1021๋ฒ: ํ์ ํ๋ ํ ์ฒซ์งธ ์ค์ ํ์ ํฌ๊ธฐ N๊ณผ ๋ฝ์๋ด๋ ค๊ณ ํ๋ ์์ ๊ฐ์ M์ด ์ฃผ์ด์ง๋ค. N์ 50๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๊ณ , M์ N๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค. ๋์งธ ์ค์๋ ์ง๋ฏผ์ด๊ฐ ๋ฝ์๋ด๋ ค๊ณ ํ๋ ์์ ์์น๊ฐ ์์๋๋ก ์ฃผ์ด์ง๋ค. ์์น๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , N๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค. www.acmicpc.net ํ์ด ๋ถ๋ฅ : ํ, ์คํ, ์๋ฎฌ๋ ์ด์ ํ์ฌ pivot ๊ฐ์ ๊ธฐ์ค์ผ๋ก left, right์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐ, ๋ ์งง์ ๊ฑฐ๋ฆฌ๋ก ์ด๋ํด์ฃผ๋ฉฐ ์ด๋๊ฑฐ๋ฆฌ๋ฅผ ์ฆ๊ฐํด์ค๋๋ค. ์ฝ๋(O(nm)) *O(nm)์ด ์๋๋ผ๋ฉด ์๋ ค์ฃผ์ธ์. ๊ฐ์ฌํฉ๋๋ค(--)(__)*
[๋ฐฑ์ค/c++] 10866๋ฒ - ๋ฑ
๋ฌธ์ 10866๋ฒ: ๋ฑ ์ฒซ์งธ ์ค์ ์ฃผ์ด์ง๋ ๋ช ๋ น์ ์ N (1 ≤ N ≤ 10,000)์ด ์ฃผ์ด์ง๋ค. ๋์จฐ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๋ช ๋ น์ด ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ์ ์๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. ๋ฌธ์ ์ ๋์์์ง ์์ ๋ช ๋ น์ด ์ฃผ์ด์ง๋ ๊ฒฝ์ฐ๋ ์๋ค. www.acmicpc.net ํ์ด ๋ถ๋ฅ : ํ, ์คํ, ๋ฑ ๋ฌธ์ ์์ ์๊ตฌํ๋๋๋ก ๋ฑ์ ๋ง๋ญ๋๋ค. ์ฝ๋(O(n)) *O(n)์ด ์๋๋ผ๋ฉด ์๋ ค์ฃผ์ธ์. ๊ฐ์ฌํฉ๋๋ค(--)(__)*
[๋ฐฑ์ค/c++] 2164๋ฒ - ์นด๋ 2
๋ฌธ์ 2164๋ฒ: ์นด๋2 N์ฅ์ ์นด๋๊ฐ ์๋ค. ๊ฐ๊ฐ์ ์นด๋๋ ์ฐจ๋ก๋ก 1๋ถํฐ N๊น์ง์ ๋ฒํธ๊ฐ ๋ถ์ด ์์ผ๋ฉฐ, 1๋ฒ ์นด๋๊ฐ ์ ์ผ ์์, N๋ฒ ์นด๋๊ฐ ์ ์ผ ์๋์ธ ์ํ๋ก ์์๋๋ก ์นด๋๊ฐ ๋์ฌ ์๋ค. ์ด์ ๋ค์๊ณผ ๊ฐ์ ๋์์ ์นด๋๊ฐ ํ ์ฅ ๋จ์ ๋๊น์ง ๋ฐ๋ณตํ๊ฒ ๋๋ค. ์ฐ์ , ์ ์ผ ์์ ์๋ ์นด๋๋ฅผ ๋ฐ๋ฅ์ ๋ฒ๋ฆฐ๋ค. ๊ทธ ๋ค์, ์ ์ผ ์์ ์๋ ์นด๋๋ฅผ ์ ์ผ ์๋์ ์๋ ์นด๋ ๋ฐ์ผ๋ก ์ฎ๊ธด๋ค. ์๋ฅผ ๋ค์ด N=4์ธ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด ๋ณด์. ์นด๋๋ ์ ์ผ ์์์๋ถํฐ 1234 ์ ์์๋ก ๋์ฌ์๋ค. 1์ ๋ฒ๋ฆฌ www.acmicpc.net ํ์ด ๋ถ๋ฅ : ํ, ์คํ ์ ๋ ฅ๊ฐ์ ํ์ ๋ฃ์ด์ฃผ๊ณ , ๋ฌธ์ ์์ ๋งํ๋ ๋๋ก ํ์ size๊ฐ 1์ด ์๋๋ ๊น์ง pop(), push(), pop() ํด์ค๋๋ค. ์ฝ๋(O(n)) *O(n)์ด ์๋๋ผ๋ฉด ์๋ ค์ฃผ์ธ..
[๋ฐฑ์ค/c++] 4949๋ฒ - ๊ท ํ์กํ ์ธ์
๋ฌธ์ 4949๋ฒ: ๊ท ํ์กํ ์ธ์ ๋ฌธ์ ์ธ๊ณ๋ ๊ท ํ์ด ์ ์กํ์์ด์ผ ํ๋ค. ์๊ณผ ์, ๋น๊ณผ ์ด๋ ๊ทธ๋ฆฌ๊ณ ์ผ์ชฝ ๊ดํธ์ ์ค๋ฅธ์ชฝ ๊ดํธ์ฒ๋ผ ๋ง์ด๋ค. ์ ๋ฏผ์ด์ ์๋ฌด๋ ์ด๋ค ๋ฌธ์์ด์ด ์ฃผ์ด์ก์ ๋, ๊ดํธ๋ค์ ๊ท ํ์ด ์ ๋ง์ถฐ์ ธ ์๋์ง ํ๋จํ๋ ํ๋ก๊ทธ๋จ์ ์ง๋ ๊ฒ์ด๋ค. ๋ฌธ์์ด์ ํฌํจ๋๋ ๊ดํธ๋ ์๊ดํธ("()") ์ ๋๊ดํธ("[]")๋ก 2์ข ๋ฅ์ด๊ณ , ๋ฌธ์์ด์ด ๊ท ํ์ ์ด๋ฃจ๋ ์กฐ๊ฑด์ ์๋์ ๊ฐ๋ค. ๋ชจ๋ ์ผ์ชฝ ์๊ดํธ("(")๋ ์ค๋ฅธ์ชฝ ์๊ดํธ(")")์๋ง ์ง์ ์ด๋ฃฐ ์ ์๋ค. ๋ชจ๋ ์ผ์ชฝ ๋๊ดํธ("[")๋ ์ค๋ฅธ์ชฝ ๋ www.acmicpc.net ํ์ด ๋ถ๋ฅ : ํ, ์คํ / ๋ฌธ์์ด ์ฒ๋ฆฌ. ํ์ฌ ๋ฌธ์๊ฐ [ or ( ์ด๋ผ๋ฉด ์คํ์ ๋ฃ๊ณ , ] or ) ์ด๋ผ๋ฉด ๋จผ์ ์คํ์ top๊ฐ ํ์ธํฉ๋๋ค. ์คํ์ top + ํ์ฌ ๋ฌธ์ ๊ฐ [] ๋๋ () ..
[๋ฐฑ์ค/c++] 1874๋ฒ - ์คํ ์์ด
๋ฌธ์ 1874๋ฒ: ์คํ ์์ด 1๋ถํฐ n๊น์ง์ ์์ ๋ํด ์ฐจ๋ก๋ก [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] ์ฐ์ฐ์ ์ํํ๋ฉด ์์ด [4, 3, 6, 8, 7, 5, 2, 1]์ ์ป์ ์ ์๋ค. www.acmicpc.net ํ์ด ๋ถ๋ฅ : ํ, ์คํ. 1. ๋จผ์ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ์์ด์ ์คํ์ ๋ด์ต๋๋ค. 2. 0๋ถํฐ ์์ํ๋ pivot์ ์ค์ ํฉ๋๋ค. 3. pivot๋ณด๋ค n๋ฒ์งธ ์์ด๊ฐ์ด ํฌ๋ค๋ฉด, pivot++ํด์ฃผ๋ฉด์ +-๊ฐ ๋ด๊ธฐ๋ ์ ๋ต์คํ์๋ +๋ฅผ ๋ด์์ค๋๋ค. 4. pivot++ํด์ฃผ๋ค๊ฐ pivot๊ณผ n๋ฒ์งธ ์์ด๊ฐ์ด ๊ฐ์ ๊ฒฝ์ฐ๊ฐ ์จ๋ค๋ฉด ์ ๋ต์คํ์ -๋ฅผ ๋ด์์ฃผ๊ณ , ์์ด ์คํ๋ popํด์ฃผ๊ณ pivot--..
[๋ฐฑ์ค/c++] 2240๋ฒ - ์๋๋๋ฌด
๋ฌธ์ ๋งํฌ 2240๋ฒ: ์๋๋๋ฌด ์๋๋ ์๋๋ฅผ ์ข์ํ๋ค. ๊ทธ๋์ ์ง์ ์๋๋๋ฌด๋ฅผ ์ฌ์ด๋๊ณ , ์ฌ๊ธฐ์ ์ด๋ฆฌ๋ ์๋๋ฅผ ๋จน๊ณ ๋ ํ๋ค. ํ์ง๋ง ์๋๋ ํค๊ฐ ์์์ ์๋๋ฅผ ๋ฐ๋จน์ง๋ ๋ชปํ๊ณ , ์๋๊ฐ ๋จ์ด์ง ๋๊น์ง ๊ธฐ๋ค๋ฆฐ ๋ค์์ ๋จ์ด์ง๋ ์๋๋ฅผ ๋ฐ์์ ๋จน๊ณ ๋ ํ๋ค. ์๋๋ฅผ ์ก์ ๋์๋ ์๋๊ฐ ํ๊ณต์ ์์ ๋ ์ก์์ผ ํ๋๋ฐ, ์ด๋ ์๋๊ฐ ๋ง๋๋ง๋ํ์ฌ ๋ฐ๋ฅ์ ๋จ์ด์ง๋ฉด ๋ชป ๋จน์ ์ ๋๋ก ๋ญ๊ฐ์ง๊ธฐ ๋๋ฌธ์ด๋ค. ๋งค ์ด๋ง๋ค, ๋ ๊ฐ์ ๋๋ฌด ์ค ํ๋์ ๋๋ฌด์์ ์ด๋งค๊ฐ ๋จ์ด์ง๊ฒ ๋๋ค. ๋ง์ฝ ์ด๋งค๊ฐ ๋จ์ด์ง๋ ์๊ฐ, ์๋ www.acmicpc.net ์ฝ๋ ๋ค๋ฅธ๋ถ์ ์ฝ๋๋ฅผ ๋ณด๊ณ ํด๊ฒฐ.. ์ค๋์ ๊ตํ : ๋ฌธ์ ๋ฅผ ํ์คํ๊ฒ ์ ์ฝ์..(์ ๋ ฅ๊ฐ์ผ๋ก ๋๋ฌด์ '๋ฒํธ'๊ฐ ์ฃผ์ด์ง๋๊ฑธ ์๋์ '๊ฐฏ์'๋ก ์ฐฉ๊ฐํ๊ณ ์๋ชป ์ ๊ทผํจ)
[๋ฐฑ์ค/c++] 11049๋ฒ - ํ๋ ฌ ๊ณฑ์ ์์
๋ฌธ์ ๋ฌธ์ ํฌ๊ธฐ๊ฐ N×M์ธ ํ๋ ฌ A์ M×K์ธ B๋ฅผ ๊ณฑํ ๋ ํ์ํ ๊ณฑ์ ์ฐ์ฐ์ ์๋ ์ด N×M×K๋ฒ์ด๋ค. ํ๋ ฌ N๊ฐ๋ฅผ ๊ณฑํ๋๋ฐ ํ์ํ ๊ณฑ์ ์ฐ์ฐ์ ์๋ ํ๋ ฌ์ ๊ณฑํ๋ ์์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๊ฒ ๋๋ค. ์๋ฅผ ๋ค์ด, A์ ํฌ๊ธฐ๊ฐ 5×3์ด๊ณ , B์ ํฌ๊ธฐ๊ฐ 3×2, C์ ํฌ๊ธฐ๊ฐ 2×6์ธ ๊ฒฝ์ฐ์ ํ๋ ฌ์ ๊ณฑ ABC๋ฅผ ๊ตฌํ๋ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด๋ณด์. AB๋ฅผ ๋จผ์ ๊ณฑํ๊ณ C๋ฅผ ๊ณฑํ๋ ๊ฒฝ์ฐ (AB)C์ ํ์ํ ๊ณฑ์ ์ฐ์ฐ์ ์๋ 5×3×2 + 5×2×6 = 30 + 60 = 90๋ฒ์ด๋ค.BC๋ฅผ ๋จผ์ ๊ณฑํ๊ณ A๋ฅผ ๊ณฑํ๋ ๊ฒฝ์ฐ A(BC)์ ํ์ํ ๊ณฑ์ ์ฐ์ฐ์ ์๋ 3×2×6 + 5×3×6 = 36 + 90 = 126๋ฒ์ด๋ค.๊ฐ์ ๊ณฑ์ ์ด์ง๋ง, ๊ณฑ์ ์ ํ๋ ์์์ ๋ฐ๋ผ์ ๊ณฑ์ ์ฐ์ฐ์ ์๊ฐ ๋ฌ๋ผ์ง๋ค.ํ๋ ฌ N๊ฐ์ ํฌ๊ธฐ๊ฐ ์ฃผ์ด์ก์ ๋, ๋ชจ๋ ํ๋ ฌ์..
[๋ฐฑ์ค/c++] 11066๋ฒ - ํ์ผ ํฉ์น๊ธฐ
๋ฌธ์ https://www.acmicpc.net/problem/11066 ๋ฌธ์ ์์ค๊ฐ์ธ ๊น๋์ ์ ์์ค์ ์ฌ๋ฌ ์ฅ(chapter)์ผ๋ก ๋๋์ด ์ฐ๋๋ฐ, ๊ฐ ์ฅ์ ๊ฐ๊ฐ ๋ค๋ฅธ ํ์ผ์ ์ ์ฅํ๊ณค ํ๋ค. ์์ค์ ๋ชจ๋ ์ฅ์ ์ฐ๊ณ ๋์๋ ๊ฐ ์ฅ์ด ์ฐ์ฌ์ง ํ์ผ์ ํฉ์ณ์ ์ต์ข ์ ์ผ๋ก ์์ค์ ์์ฑ๋ณธ์ด ๋ค์ด์๋ ํ ๊ฐ์ ํ์ผ์ ๋ง๋ ๋ค. ์ด ๊ณผ์ ์์ ๋ ๊ฐ์ ํ์ผ์ ํฉ์ณ์ ํ๋์ ์์ํ์ผ์ ๋ง๋ค๊ณ , ์ด ์์ํ์ผ์ด๋ ์๋์ ํ์ผ์ ๊ณ์ ๋ ๊ฐ์ฉ ํฉ์ณ์ ์์ค์ ์ฌ๋ฌ ์ฅ๋ค์ด ์ฐ์์ด ๋๋๋ก ํ์ผ์ ํฉ์ณ๋๊ฐ๊ณ , ์ต์ข ์ ์ผ๋ก๋ ํ๋์ ํ์ผ๋ก ํฉ์น๋ค. ๋ ๊ฐ์ ํ์ผ์ ํฉ์น ๋ ํ์ํ ๋น์ฉ(์๊ฐ ๋ฑ)์ด ๋ ํ์ผ ํฌ๊ธฐ์ ํฉ์ด๋ผ๊ณ ๊ฐ์ ํ ๋, ์ต์ข ์ ์ธ ํ ๊ฐ์ ํ์ผ์ ์์ฑํ๋๋ฐ ํ์ํ ๋น์ฉ์ ์ด ํฉ์ ๊ณ์ฐํ์์ค.์๋ฅผ ๋ค์ด, C1, C2, C3, C4๊ฐ..
[๋ฐฑ์ค/c++] 1520๋ฒ - ๋ด๋ฆฌ๋ง ๊ธธ
๋ฌธ์ ๋ฌธ์ ์ฌํ์ ๋ ๋ ์ธ์ค์ด๋ ์ง๋๋ฅผ ํ๋ ๊ตฌํ์๋ค. ์ด ์ง๋๋ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ง์ฌ๊ฐํ ๋ชจ์์ด๋ฉฐ ์ฌ๋ฌ ์นธ์ผ๋ก ๋๋์ด์ ธ ์๋ค. ํ ์นธ์ ํ ์ง์ ์ ๋ํ๋ด๋๋ฐ ๊ฐ ์นธ์๋ ๊ทธ ์ง์ ์ ๋์ด๊ฐ ์ฐ์ฌ ์์ผ๋ฉฐ, ๊ฐ ์ง์ ์ฌ์ด์ ์ด๋์ ์ง๋์์ ์ํ์ข์ฐ ์ด์ํ ๊ณณ๋ผ๋ฆฌ๋ง ๊ฐ๋ฅํ๋ค. ํ์ฌ ์ ์ผ ์ผ์ชฝ ์ ์นธ์ด ๋ํ๋ด๋ ์ง์ ์ ์๋ ์ธ์ค์ด๋ ์ ์ผ ์ค๋ฅธ์ชฝ ์๋ ์นธ์ด ๋ํ๋ด๋ ์ง์ ์ผ๋ก ๊ฐ๋ ค๊ณ ํ๋ค. ๊ทธ๋ฐ๋ฐ ๊ฐ๋ฅํ ํ์ ์ ๊ฒ ๋ค์ด๊ณ ์ถ์ด ํญ์ ๋์ด๊ฐ ๋ ๋ฎ์ ์ง์ ์ผ๋ก๋ง ์ด๋ํ์ฌ ๋ชฉํ ์ง์ ๊น์ง ๊ฐ๊ณ ์ ํ๋ค. ์์ ๊ฐ์ ์ง๋์์๋ ๋ค์๊ณผ ๊ฐ์ ์ธ ๊ฐ์ง ๊ฒฝ๋ก๊ฐ ๊ฐ๋ฅํ๋ค. ์ง๋๊ฐ ์ฃผ์ด์ง ๋ ์ด์ ๊ฐ์ด ์ ์ผ ์ผ์ชฝ ์ ์ง์ ์์ ์ถ๋ฐํ์ฌ ์ ์ผ ์ค๋ฅธ์ชฝ ์๋ ์ง์ ๊น์ง ํญ์ ๋ด๋ฆฌ๋ง๊ธธ๋ก๋ง ์ด๋ํ๋ ๊ฒฝ๋ก์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ..