๐ค PS(Problem Solving)
[๋ฐฑ์ค/c++] 10610๋ฒ - 30
๋ฌธ์ 10610๋ฒ: 30 ๋ฌธ์ ์ด๋ ๋ , ๋ฏธ๋ฅด์ฝ๋ ์ฐ์ฐํ ๊ธธ๊ฑฐ๋ฆฌ์์ ์์ N์ ๋ณด์๋ค. ๋ฏธ๋ฅด์ฝ๋ 30์ด๋ ์๋ฅผ ์กด๊ฒฝํ๊ธฐ ๋๋ฌธ์, ๊ทธ๋ ๊ธธ๊ฑฐ๋ฆฌ์์ ์ฐพ์ ์์ ํฌํจ๋ ์ซ์๋ค์ ์์ด 30์ ๋ฐฐ์๊ฐ ๋๋ ๊ฐ์ฅ ํฐ ์๋ฅผ ๋ง๋ค๊ณ ์ถ์ดํ๋ค. ๋ฏธ๋ฅด์ฝ๋ฅผ ๋์ ๊ทธ๊ฐ ๋ง๋ค๊ณ ์ถ์ดํ๋ ์๋ฅผ ๊ณ์ฐํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ. ์ ๋ ฅ N์ ์ ๋ ฅ๋ฐ๋๋ค. N๋ ์ต๋ 105๊ฐ์ ์ซ์๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ, 0์ผ๋ก ์์ํ์ง ์๋๋ค. ์ถ๋ ฅ ๋ฏธ๋ฅด์ฝ๊ฐ ๋ง๋ค๊ณ ์ถ์ดํ๋ ์๊ฐ ์กด์ฌํ๋ค๋ฉด ๊ทธ ์๋ฅผ ์ถ๋ ฅํ๋ผ. ๊ทธ ์๊ฐ ์กด์ฌํ์ง ์๋ www.acmicpc.net ํ์ด ๋ถ๋ฅ : ๊ทธ๋ฆฌ๋ 30์ ๋ฐฐ์์ด๋ฉด์, ์ต๋์ธ ๊ฐ์ ์ฐพ์์ผ ํฉ๋๋ค. 1.30์ ๋ฐฐ์๋ ๋์๋ฆฌ๊ฐ ๋ฌด์กฐ๊ฑด 0์ผ๋ก, ์ ๋ ฅ๊ฐ์ 0์ด ์๋์ง ํ์ธํฉ๋๋ค.(์์ผ๋ฉด -1 ์ถ๋ ฅ) 2.์๋ฆฌ์๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํฉ๋..
[๋ฐฑ์ค/c++] 10971๋ฒ - ์ธํ์ ์ํ2
๋ฌธ์ 10971๋ฒ: ์ธํ์ ์ํ 2 ์ฒซ์งธ ์ค์ ๋์์ ์ N์ด ์ฃผ์ด์ง๋ค. (2 ≤ N ≤ 10) ๋ค์ N๊ฐ์ ์ค์๋ ๋น์ฉ ํ๋ ฌ์ด ์ฃผ์ด์ง๋ค. ๊ฐ ํ๋ ฌ์ ์ฑ๋ถ์ 1,000,000 ์ดํ์ ์์ ์ ์์ด๋ฉฐ, ๊ฐ ์ ์๋ ๊ฒฝ์ฐ๋ 0์ด ์ฃผ์ด์ง๋ค. W[i][j]๋ ๋์ i์์ j๋ก ๊ฐ๊ธฐ ์ํ ๋น์ฉ์ ๋ํ๋ธ๋ค. ํญ์ ์ํํ ์ ์๋ ๊ฒฝ์ฐ๋ง ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ค. www.acmicpc.net ํ์ด ๋ถ๋ฅ : ์์ ํ์+dfs ์ฝ๋(O(n)?) *O(n)์ด ์๋๋ผ๋ฉด ์๋ ค์ฃผ์ธ์. ๊ฐ์ฌํฉ๋๋ค(--)(__)*
[๋ฐฑ์ค/c++] 1525๋ฒ - ํผ์ฆ
๋ฌธ์ 1525๋ฒ: ํผ์ฆ ์ธ ์ค์ ๊ฑธ์ณ์ ํ์ ์ฑ์์ ธ ์๋ ์ํ ๊ฐ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ํ ์ค์ ์ธ ๊ฐ์ ์๊ฐ ์ฃผ์ด์ง๋ฉฐ, ๋น ์นธ์ 0์ผ๋ก ๋ํ๋ธ๋ค. www.acmicpc.net ํ์ด ๋ถ๋ฅ : ์์ ํ์ 0๋ง 3x3 ์์น๋ก ์ฎ๊ธฐ๋๊ฒ ์๋๋ผ, ํผ์ฆํ๊น์ง 1 2 3 4 5 6 7 8 0 ์์ผ๋ก ๋ง์ถฐ์ผ ํ๋ ๊ฒ์ด ์ด ๋ฌธ์ ์ ํต์ฌ์ด์์ต๋๋ค. + bfs ๊ฒฐ๊ตญ ์ ๋ ฅ๊ฐ์ 123456780์ ์์๋ก ๋ง๋ค์ ์๋์ง๋ฅผ ์ฒดํฌํ๋ฉด ๋์์ต๋๋ค. 1. ์ ๋ ฅ๊ฐ์ string ๋ฌธ์์ด๋ก ์ด๊ธฐํํ๋, 0์ 9๋ก ์นํํด์ค๋๋ค. 2. ์ฒ์ ์ ๋ ฅ๋ฐ์ ๋ฌธ์์ด์ ํ์ ๋ฃ์ด์ค๋๋ค. 3. ํ์์ popํ ๋ฌธ์์ด์์ 9์ ์์น๋ฅผ ์ฐพ๊ณ , 9์ ์ํ์ข์ฐ๋ฅผ ์ค์ํฉ๋๋ค. 4. ์ค์์ผ๋ก ์๋ก ๋ง๋ค์ด์ง string๋ฌธ์์ด์ด, ์บ์์ key๋ก ์ด๋ฏธ ๋ฑ๋ก๋์ด์๋์ง ์ฒดํฌํฉ๋..
[๋ฐฑ์ค/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--..
[Level2/c++] ์์ ์ฐพ๊ธฐ
๋ฌธ์ ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์์ ์ฐพ๊ธฐ | ํ๋ก๊ทธ๋๋จธ์ค ํ์๋ฆฌ ์ซ์๊ฐ ์ ํ ์ข ์ด ์กฐ๊ฐ์ด ํฉ์ด์ ธ์์ต๋๋ค. ํฉ์ด์ง ์ข ์ด ์กฐ๊ฐ์ ๋ถ์ฌ ์์๋ฅผ ๋ช ๊ฐ ๋ง๋ค ์ ์๋์ง ์์๋ด๋ ค ํฉ๋๋ค. ๊ฐ ์ข ์ด ์กฐ๊ฐ์ ์ ํ ์ซ์๊ฐ ์ ํ ๋ฌธ์์ด numbers๊ฐ ์ฃผ์ด์ก์ ๋, ์ข ์ด ์กฐ๊ฐ์ผ๋ก ๋ง๋ค ์ ์๋ ์์๊ฐ ๋ช ๊ฐ์ธ์ง return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ ํ์ฌํญ numbers๋ ๊ธธ์ด 1 ์ด์ 7 ์ดํ์ธ ๋ฌธ์์ด์ ๋๋ค. numbers๋ 0~9๊น์ง ์ซ์๋ง์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. 013์ 0, 1, 3 ์ซ์๊ฐ ์ ํ ์ข ์ด programmers.co.kr ํ์ด ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ฅผ ์์ฉํ๋ค. 0. 0์ด ๋งจ ์์ ์ค์ง ์๋๋ก ๋ฌธ์์ด์ sortํด์ค๋ค. 1. 2~stoi(numbers.size())์ ์ ์ค์์ numbers์..