728x90 Coding Test ์ฝ๋ฉํ ์คํธ13 Do it ์๊ณ ๋ฆฌ์ฆ ์ฝ๋ฉํ ์คํธ ํ๋ฃจ์ฝ๋ฉ 7์ฅ ์ ์๋ก ๋ฌธ์ #18 ์์ ๊ตฌํ๊ธฐ M์ด์ N์ดํ์ ์์ฐ์ ์ค ์์ ๋ชจ๋ ์ถ๋ ฅ ์ต๋ ํฌ๊ธฐ 1,000,000์ด๋ฏ๋ก ์๊ฐ๋ณต์ก๋๊ฐ O(N^2)์ธ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉ ๋ถ๊ฐํ๋ค. ๊ณผ์ 1. ํฌ๊ธฐ๊ฐ N+1์ธ ๋ฐฐ์ด ์์ฑ, ๊ฐ ์์์ ์ธ๋ฑ์ค ๋์ // ์ธ๋ฑ์ค ์์ 1๋ถํฐ ์์ํ์ฌ ์ ๊ฒฝ ์ ์ฐ๊ฒ ํ๊ธฐ ์ํ์ฌ 2. 1์ ์์ X์ด๋ฏ๋ก ์ญ์ , 2๋ถํฐ N์ ์ ๊ณฑ๊ทผ๊น์ง ํ์ํ์ฌ ๊ฐ์ด ์ธ๋ฑ์ค์ ์ผ์นํ๋ฉด ๊ทธ๋๋ก ๋๊ณ // ์ฒ์ ์ ํํ ์๋ ์์๋ก ์ธ์ , ๊ทธ ๋ฐฐ์๋ ์ญ์ 3. ๋จ์ ์๋ ์ ๋ชจ๋ ์ถ๋ ฅ // M์ด์ N์ดํ *N์ ์ ๊ณฑ๊ทผ๊น์ง๋ง ํ์ํ๋ ์ด์ N์ ๋ ์์ ๊ณฑ a*b๋ก ํํํ๋ฉด ๊ฐ ์์ธ a, b๋ ๋์ค ํ๋๋ N์ ์ ๊ณฑ๊ทผ๋ณด๋ค ํด ์ ์๋ค. ๊ทธ๋ฌ๋ฏ๋ก N์ ์ ๊ณฑ๊ทผ๊น์ง๋ง ํ์ํ๋ฉด ์ ์ฒด ๋ฒ์์ ์์ ํ์ ๊ฐ๋ฅ for(int i = 2; i 2022. 11. 20. Do it ์๊ณ ๋ฆฌ์ฆ ์ฝ๋ฉํ ์คํธ ํ๋ฃจ์ฝ๋ฉ 6์ฅ ๊ทธ๋ฆฌ๋ ๋ฌธ์ #16 32 ๋์ ์ ๊ฐ์์ ์ต์๊ฐ == ๊ฑฐ์ค๋ฆ๋์ ๊ฐ์ฅ ์ ์ ๊ฐ์์ ์งํ๋ก ๊ฑฐ์ฌ๋ฌ ์ฃผ๋ ๊ฒฝ์ฐ์ ์ ๋์ ์ ์ข ๋ฅ ๊ฐ์N, ๋ง๋ค๊ณ ์ํ๋ ๊ฐ๊ฒฉK, ๋์ ์๋ ์ถฉ๋ถ ๊ฐ์ฅ ๊ฐ๊ฒฉ์ด ํฐ ๊ธ์ก์ ๋์ ๋ถํฐ ๊ตฌ์ฑํ๋ฉด ๋๋ค. // ๋จผ์ ๊ทธ๋ฆฌ๋๋ก ํ์ด๋ ๋๋์ง ํ๋จํ ํ ๊ตฌํ ๊ทธ๋ฌ๋, ๋ฐ๋ก๋ฅผ ์ ๋ฐ์ ธ๋ด์ผ ํ๋ค. ex) 135 9 51111 5๊ฐ 333 3๊ฐ ๋ฐฐ์๋ผ๋ ์กฐ๊ฑด์ด ์์ผ๋ฏ๋ก ๊ด์ฐฎ๋ค. // Ai-1์ ๋ฐฐ์ Ai ์ค๋ฆ์ฐจ์์ด๋ฏ๋ก ์ญ์์ผ๋ก ์ ๊ทผํด์ผ ๊ฐ์ฅ ๊ฐ๊ฒฉ์ด ํฐ ๊ธ์ก๋ถํฐ ์ ๊ทผ ๊ฐ๋ฅํ๋ค. ๊ฐ์ฅ ๊ฐ๊ฒฉ์ด ํฐ ๊ฒ ๋ถํฐ ์์๋๋ก ์ฐพ์์ K๋ณด๋ค ์์ ๊ฐ ์ฐพ๊ธฐ int count = 0; // ๋์ ์ ๊ฐ์ ์ด๊ธฐํ for(int i = N-1; i>=0; i--) { ๋์ ์ += ๋ชฉํ๊ธ์ก K/ํ์ฌ ๋์ ์ ๊ฐ์น K = K % ํ์ฌ ๋์ ์ .. 2022. 11. 20. Do it ์๊ณ ๋ฆฌ์ฆ ์ฝ๋ฉํ ์คํธ ํ๋ฃจ์ฝ๋ฉ 5์ฅ ํ์ ๋ฌธ์ ์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค. # 13 ์ฐ๊ฒฐ ์์์ ๊ฐ์ ๊ตฌํ๊ธฐ ์ฐ๊ฒฐ์์๋ ์์ง๋ก ์ฐ๊ฒฐ๋ ๋ ธ๋์ ์งํฉ ex) 1, 2, 5์ 3, 4, 6 ์ด 2๊ฐ DFS๋ ๊ทธ๋ํ ์์ ํ์์ด๋ฏ๋ก, ํ๋ฒ์ DFS๊ฐ ๋๋ ๋ ๊น์ง ํ์ํ ๋ ธ๋์ ์งํฉ์ด ์ฐ๊ฒฐ์์ 1๊ฐ์ด๋ค. ์ฆ ๋ชจ๋ ๋ ธ๋๋ฅผ ํ์ํ ๋์ DFS ํ์๊ฐ ์ฐ๊ฒฐ์์์ ๊ฐ์์ด๋ค. ๋ง์ฝ ๊ทธ๋ํ์ ๋ชจ๋ ๋ ธ๋๊ฐ ์ฐ๊ฒฐ ๋์ด ์์๋ค๋ฉด DFS ํ์๋ 1์ด๋ค. ๋ฐฉํฅ์ด ์๋ ๊ทธ๋ํ์ด๋ฏ๋ก ์๋ฐฉํฅ ๋ชจ๋ ์ธ์ ๋ฆฌ์คํธ๋ก ํํ N=1,000์ด๋ฏ๋ก O(n^2)์ธ ์๊ณ ๋ฆฌ์ฆ๋ ์ฌ์ฉ๊ฐ๋ฅํ๋ค. if(๋ฐฉ๋ฌธํ์ง ์์ ๋ ธ๋๊ฐ ์กด์ฌํ๋ค๋ฉด) { // ๊ฐ ์ฐ๊ฒฐ์์์ ๋ฐฉ๋ฌธ ์ฌ๋ถ count++; DFS(i); } DFS(int i) { if(visited[.. 2022. 11. 20. Do it ์๊ณ ๋ฆฌ์ฆ ์ฝ๋ฉํ ์คํธ ํ๋ฃจ์ฝ๋ฉ 4์ฅ ์ ๋ ฌ ๋ฌธ์ ์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค. # 11 15 ์ ์ ๋ ฌํ๊ธฐ1 (๋ฐฑ์ค 2750) ์์ ์ต๋ ๊ฐ์, ์ฆ ๋ฐ์ดํฐ N์ ์ต๋ ๊ฐ์๊ฐ 1,000์ด๋ฏ๋ก ์๊ฐ๋ณต์ก๋๊ฐ O(n^2) ์ธ ์๊ณ ๋ฆฌ์ฆ๋ ์ฌ์ฉ๊ฐ๋ฅํ๋ค. ๋ฒ๋ธ ์ ๋ ฌ์ ์ด์ฉํ์ฌ ์ ๋ ฌ 0๋ฒ์งธ ๋ฃจํ์์ 0๊ณผ 1 ๋น๊ตํ์ฌ swap, 1๊ณผ 2 ๋น๊ตํ์ฌ swap ... // ์ค๋ฆ์ฐจ์์ธ ๊ฒฝ์ฐ ์์ด ๋ ํฌ๋ฉด swap ์ ๋ ฌ๋์ง ์์ ๋ฒ์ -1 for 0 N-1 // ๋ฃจํ์ ๊ฐ์, ๋ง์ง๋ง์ ๋ฐ์ดํฐ 2๊ฐ๊ฐ ์ ๋ ฌ๋๋ฏ๋ก N์ด ์๋๋ผ N-1๋ฒ ๋ฃจํ for 0 N-1-i // ์ ๋ ฌ๋์ง ์์ ๋ฒ์, -i๋ ๋ฃจํ์ ํ์๊ฐ ์งํ๋ ์๋ก ์ ๋ ฌ๋์ง ์์ ๋ฒ์๊ฐ 1๊ฐ์ฉ ์ค์ด๋๋ฏ๋ก # 12 17 ๋ด๋ฆผ์ฐจ์์ผ๋ก ์๋ฆฟ์ ์ ๋ ฌํ๊ธฐ (๋ฐฑ์ค 1427) ์์ ๊ฐ.. 2022. 11. 20. Do it ์๊ณ ๋ฆฌ์ฆ ์ฝ๋ฉํ ์คํธ ํ๋ฃจ์ฝ๋ฉ 3์ฅ ์๋ฃ๊ตฌ์กฐ ๋ฌธ์ # 1 ๊ฐ ์๋ฆฌ ์ซ์์ ํฉ ๊ตฌํ๊ธฐ java ์ซ์์ ๊ฐ์ N N๊ฐ์ ์ซ์์ ๋์ด 5 54321 54321/10000 == 5 54321%10000 == 4321 4321/1000 == 4 4321%1000 == 321 ์ด๋ฐ ๋ก์ง์ผ๋ก ํ๋ฉด ๋ณต์กํ๋ค. ๊ตฌํํ๊ธฐ๋ ์ด๋ ค์ธ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋, ๊ฐ์ฅ ํต์ฌ์ ์ธ ๊ฒ์ N์ด 100์ด๋ฏ๋ก 100์๋ฆฌ ์๋ฅผ int, long ํ์ผ๋ก ๋ฐ์ ์ ์๋ค๋ ๊ฒ์ด๋ค. ์๋ฃํ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฌ๋ฏ๋ก String์ผ๋ก ๋ฐ์์ผํ๋ค. ๋ฌธ์์ด "54321"์ ๊ฐ ์๋ฆฌ ์๋ฅผ ๋ฝ์๋ด๋ ค๋ฉด toCharArray() ๋ฉ์๋ ํธ์ถํ์ฌ ๋ฌธ์ํ ๋ฐฐ์ด๋ก ๋ง๋ค์ด์ผํ๋ค. ๊ทธ๋ฌ๊ณ ๋์ ๋ฌธ์ ์ซ์๋ฅผ ์ซ์๋ก ๋ณํํ๊ธฐ์ํด '1' -> 1 ์์คํค์ฝ๋๋ฅผ ์ด์ฉํ๋ค. ๋ฌธ์'1'์ ์ซ์1๋ก ๋ณํ '1' - 48 ๋๋ '1' .. 2022. 11. 20. Do it ์๊ณ ๋ฆฌ์ฆ ์ฝ๋ฉํ ์คํธ ํ๋ฃจ์ฝ๋ฉ 8์ฅ ๊ทธ๋ํ ์ด๋ก # 20 ๊ทธ๋ํ ๊ทธ๋ํ๋ ๋ ธ๋์ ์ฃ์ง๋ก ๊ตฌ์ฑ๋ ์งํฉ์ด๋ค. ๋ ธ๋๋ ๋ฐ์ดํฐ๋ฅผ ํํํ๋ ๋จ์ ์์ง๋ ๋ ธ๋๋ก ์ฐ๊ฒฐ ํธ๋ฆฌ๋ ๊ทธ๋ํ์ ์ผ์ข ์ ๋์จ ํ์ธ๋ ๊ทธ๋ํ์ ์ธ์ดํด์ด ์์ฑ๋๋์ง ํ๋ณ ์์์ ๋ ฌ ์กฐ๊ฑด ์ธ์ดํดX, ๋ฐฉํฅO ์ ํ ๊ด๊ณ๊ฐ ์๋ ๋ ธ๋๋ฅผ ์ ํ์ผ๋ก ์ ๋ ฌ ex) ์๊ฐ์ ์ฒญ ์1 -> ์2 ๊ฒ์ ๋น๋์ค๋ ์ฃผ์ ๊ฒฐ๊ณผ๊ฐ ์ ์ผํ์ง ์๋ค. ์ต๋จ๊ฑฐ๋ฆฌ ์๊ณ ๋ฆฌ์ฆ ๋ค๋ฅธ ๋ชจ๋ ๋ ธ๋๋ก ๊ฐ๋ ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ ๋ค์ต์คํธ๋ผ ์กฐ๊ฑด ์์์ O, ์์๊ฐ์ X ๋ฒจ๋งํฌ๋ ์กฐ๊ฑด ์์์ O, ์์๊ฐ์ ok ์์ ์ธ์ดํด์ด ์๋์ง? ์ต๋จ๊ฑฐ๋ฆฌ๊ฐ ์์ ๋ฌดํ๋๋ก ๊ฐ๋ค. ex) ์๊ฐ ์ฌํ, ์ํ ํ๋ก์ด๋ ์์ ์กฐ๊ฑด ์์์ X ๋ชจ๋ ๋ ธ๋ ์์ ์ต๋จ๊ฑฐ๋ฆฌ ๋จ์ ์๊ฐ๋ณต์ก๋ ๋์๋ค. // ๋ ธ๋์ ๊ฐ์๊ฐ ์์ ๋ ๋๋ ๋ชจ๋ ๋ ธ๋์์ ๊ตฌํ ๋ ์ฌ์ฉ ์ต์์ ์ฅํธ๋ฆฌ MST ๋ชจ๋ .. 2022. 11. 18. Do it ์๊ณ ๋ฆฌ์ฆ ์ฝ๋ฉํ ์คํธ ํ๋ฃจ์ฝ๋ฉ 7์ฅ ์ ์๋ก ์ด๋ก #18 ์์ ๊ตฌํ๊ธฐ(์๋ผํ ์คํ ๋ค์ค์ ์ฒด) ์์(prime number)? ์ฝ์๊ฐ 1๊ณผ ์๊ธฐ ์์ ์ด์ธ์๋ ์กด์ฌํ์ง ์๋ ์ // 1์ ์์๊ฐ ์๋๋ค. ์ฝ๋ฉํ ์คํธ์์๋ ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ์์๋ฅผ ๊ตฌํ๋ค. ๊ณผ์ 1. ๊ตฌํ๊ณ ์ํ๋ ๋ฒ์ ๋งํผ 1์ฐจ์ ๋ฐฐ์ด ์์ฑ 2. 2๋ถํฐ ์์ํ์ฌ // 1์ ์์๊ฐ ์๋๋ฏ๋ก ์ญ์ ๋ฐฐ์ด์์ ํ์ฌ ์ ํ๋ ์ซ์์ ๋ฐฐ์์ ํด๋นํ๋ ์๋ฅผ ๋๊น์ง ํ์ํ๋ฉฐ ์ญ์ ์ฒ์ ์ ํ๋ ์ซ์๋ ์ง์ฐ์ง ์๋๋ค. // ์์์ด๋ฏ๋ก 3. ๋๊น์ง ๊ณผ์ 2๋ฅผ ๋ฐ๋ณตํ ๋จ์ ์๋ ์๋ฅผ ์ถ๋ ฅ // ์์ ์๊ฐ๋ณต์ก๋๋? ์ด์ค for๋ฌธ ์ด๋ฏ๋ก O(n^2) ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ์๋๋ค. ์ค์ ๋ O(nlog(logn)) // ๋ฐ๊นฅ for๋ฌธ์ด ๋น๋ฒํ๊ฒ ์๋ต๋๋ฏ๋ก # 19 ์ต๋ ๊ณต์ฝ์ ๊ตฌํ๊ธฐ(์ ํด๋ฆฌ๋ ํธ์ ๋ฒ) ์ต๋ ๊ณต์ฝ์๋.. 2022. 11. 18. Do it ์๊ณ ๋ฆฌ์ฆ ์ฝ๋ฉํ ์คํธ ํ๋ฃจ์ฝ๋ฉ 6์ฅ ๊ทธ๋ฆฌ๋ ์ด๋ก # 17 ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ (ํ์๋ฒ) ํ์ฌ ๋จ๊ณ์ ์ ํ์ง ์ค์์ ์ต์ ์ ์ ํํด๋๊ฐ๋ค ๋ณด๋ฉด, ๊ฒฐ๊ณผ๊ฐ ์ต์ ์ผ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ๋ ์๊ณ ๋ฆฌ์ฆ ๊ทธ๋ฌ๋ฏ๋ก ๊ฒฐ๊ณผ๊ฐ ํญ์ ์ต์ ์ ๋ณด์ฅํ์ง ์๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๊ทธ๋ฆฌ๋๋ก ํ์ด๋ ๋๋์ง ํ๋จํด์ผํ๋ค. ๊ณผ์ 1. ํด์ ํ: ํ์ฌ ๋จ๊ณ์์ ๊ฐ์ฅ ์ต์ ์ธ ํด๋ฅผ ์ ํํ๋ค. 2. ์ ์ ์ฑ ๊ฒ์ฌ: ํ์ฌ ์ ํํ ์ ํ์ง๊ฐ ์ ์ฒด ๋ฌธ์ ์ ์ ์ฝ์กฐ๊ฑด์ ๋ฒ์ด๋์ง ์๋์ง ๊ฒ์ฌํ๋ค. 3. ํด๊ฒ์ฌ: ๊ฒฐ๊ณผ๊ฐ ์ ์ฒด๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋์ง ๊ฒ์ฌํ๋ค. ๊ทธ๋ ์ง ๋ชปํ๋ฉด 1๋ก ๋์๊ฐ ๋ฐ๋ณตํ๋ค. 2022. 11. 18. Do it ์๊ณ ๋ฆฌ์ฆ ์ฝ๋ฉํ ์คํธ ํ๋ฃจ์ฝ๋ฉ 5์ฅ ํ์ ์ด๋ก # 14 ๊น์ด์ฐ์ ํ์(DFS) ์์ ๋ ธ๋์์ ์ถ๋ฐํ์ฌ ํ์ํ ํ์ชฝ ๋ถ๊ธฐ๋ฅผ ์ ํ์ฌ ์ต๋ ๊น์ด๊น์ง ํ์์ ๋ง์น ํ, ๋ค๋ฅธ ๋ถ๊ธฐ๋ก ์ด๋ํ์ฌ ๋ค์ ํ์์ ์ํํ๋ ์๊ณ ๋ฆฌ์ฆ ๊ธฐ๋ฅ ํน์ง ์๊ฐ๋ณต์ก๋ ๊ทธ๋ํ ์์ ํ์ LIFO ์ฌ๊ทํจ์ ๋๋ Stack์ผ๋ก ๊ตฌํ O(V+E) // ์ฌ๊ทํจ์ ๊ตฌํ์ ์คํ ์ค๋ฒ ํ๋ก์ฐ ์ ์ A{ A(); } ์์ฉ ๋จ์ ์ ์ฐพ๊ธฐ, ๋จ์ ์ ์ฐพ๊ธฐ, ์ฌ์ดํด ์ฐพ๊ธฐ, ์์์ ๋ ฌ 1. DFS๋ฅผ ์์ํ ๋ ธ๋๋ฅผ ์ ํ ํ ์ฌ์ฉํ ์๋ฃ๊ตฌ์กฐ ์ด๊ธฐํ ์๋ณธ ๊ทธ๋ํ, ์ธ์ ๋ฆฌ์คํธ๋ก ๊ทธ๋ํ ํํ, ๋ฐฉ๋ฌธ๋ฐฐ์ด 1์ T, ์คํ์ 1 2. ์คํ์์ ๋ ธ๋๋ฅผ ๊บผ๋ธ ํ ๊บผ๋ธ ๋ ธ๋์ ์ธ์ ๋ ธ๋๋ฅผ ์คํ์ ์ฝ์ 3. ์คํ์ ๊ฐ์ด ์์ ๋๊น์ง ๋ฐ๋ณต ์ด๋ฏธ ๋ค๋ ๊ฐ ๋ ธ๋๋ ์ฌ๋ฐฉ๋ฌธX pop() ํ๋ฉด์ ํ์ ์์์ ๊ธฐ๋ก, ์ธ์ ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธ ๋ฐฐ์ด์์ ์ฒดํฌํ.. 2022. 11. 17. ์ด์ 1 2 ๋ค์ 728x90