๐ Self Study65 ํ๋ก๊ทธ๋๋จธ์ค (์์ ๋ง๋ค๊ธฐ, Summer/Winter Coding(~2018)) C++ ์ผ์ค ๋ฃจํ๋ฅผ ๋๋ ธ๋ค๋ผ๋ ๊ฒ ๋ง๊ณ ๋ ์์ฌ์ ์ฐ๋ฆฌ๋ ๋ถ๋ถ์ด ์๋ ๋ฌธ์ . ๋ณ๋ก ์ค๋ช ํ ๊ฒ์ด ์์ด ๋ณด์ธ๋ค. #include #include using namespace std; bool pass(int sum) { int count = 0; for(int i = 1 ; i 2021. 12. 30. ํ๋ก๊ทธ๋๋จธ์ค (๋จ์ด ๋ณํ, ๊น์ด/๋๋น ์ฐ์ ํ์(DFS/BFS)) C++ DFS๊ฐ ์๋๋ผ BFS ์ธ๊ฒ ๊ฐ๊ธดํ๋ฐ ์ผ๋จ ํจ์๋ช ์ ์ด๋ ๊ฒ dfs๋ก ํด๋ฒ๋ ธ๋ค. ์๋๊ฐ... ์์ง ๊ฐ๋ ์ด ํ์คํ ์กํ์ง ์์๋ฏ.. ์๋ฌดํผ DFS์ BFS๋ฅผ ํ ๋ ํ๋ผ๋ฏธํฐ๋ก ํ๋์ฉ ๋ฐ๋์ด์ ๋๊ฒจ์ง๊ฒ ๋๋ ๊ฒ์ Focus๋ฅผ ๋ง์ถ๋ค. ๊ทธ๋ฆฌ๊ณ visited๊ฐ ๊ฐ์ฅ ์ค์!! ๊ทธ๋ฆฌ๊ณ ์ด ๋ฌธ์ ์ ๊ฒฝ์ฐ ๋ฐฉ๋ฌธํ์ง ์์ ๊ฒฝ์ฐ์ node๋ฅผ queue์ ๋ชจ๋ ๋ฃ๊ณ ์ดํผ๋ ๊ฒ์ด ์๋๊ธฐ ๋๋ฌธ์ dfs ์ฌ๊ท๋ฅผ ํ์ถํ๊ฒ ๋๋ฉด ์ด์ค for๋ฌธ ์ค nested๋ for๋ฌธ์์ visited ํ ๋ ธ๋์ visited๋ฅผ 0์ผ๋ก ๋ง๋ค์ด์ผ ํ๋ค๋ ๊ฒ์ด ํฌ์ธํธ #include #include #include using namespace std; int answer = 100; string value; vector visited(50,0); void.. 2021. 12. 30. ํ๋ก๊ทธ๋๋จธ์ค (๋คํธ์ํฌ, ๊น์ด/๋๋น ์ฐ์ ํ์(DFS/BFS)) C++ ์ด๋ฐ์ ๋ฌธ์ Setting ํ ๋ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ ธ๊ณ ๋ฌถ์ธ ๊ฒ์ด ๋ช ๊ฐ์ธ์ง ํ์ ํ๋ ๊ฒ์์๋ ๋ง์ด ์๊ฐ์ ์ผ๋ค. ํ๋ค๋ณด๋๊น visited ํ์ง ์์ ๊ฒ์ ์์ํ ๋๊ฐ ๋คํธ์ํฌ๊ฐ ๋ฌ๋ผ์ง๋ ์๊ฐ์ด์๋ค. #include #include #include #include using namespace std; int solution(int n, vector computers) { int answer = 0; vector adj(n+1); vector visited(n+1, 0); queue queue; // Diagonal Matrix ์ด๋ฏ๋ก Upper์ ํด๋นํ๋ ๊ฒ๋ง ์ทจํด์ adjacent list ๋ง๋ค๊ธฐ for(int i = 0 ; i < n ; i++) { for(int j = i+1 ; j < n ; j++.. 2021. 12. 30. ํ๋ก๊ทธ๋๋จธ์ค (๊ฐ์ฅ ๋จผ ๋ ธ๋, ๊ทธ๋ํ) C++ ๊ทธ๋ํ์ DFS์ ๋๋์ด ํ๊ธด๋ค๋ฉด ์ด์ค ๋ฒกํฐ๋ฅผ ์ด์ฉํด์ Adjacent List๋ฅผ ๋ง๋ค๊ณ visited ๋ฒกํฐ๋ฅผ ์ด์ฉํด์ BFS๋ฅผ iterativeํ๊ฒ ๊ตฌ์ฑํ๋ค. ๊ทธ๋ฆฌ๊ณ BFS์ ๊ฒฝ์ฐ ์์ ๋ ธ๋์ ์ผ๋ง๋ ๋จ์ด์ ธ ์๋์ง๋ ์๋ก์ด ๋ฐฐ์ด์ ํ๋ ๋ง๋ค์ด์ค์ ์๊ณ ๋ฆฌ์ฆ์ ์์ฑํ๋ฉด ๋๋ค. while ๋ฌธ ์์ for ๋ฌธ์ ๊ฒฝ์ฐ ํ๋์ node๋ฅผ ์ค์ ํด๋๊ณ ๊ทธ ์ฃผ๋ณ ์ฐ๊ฒฐ๋ node๋ง์ ํ์ํ๋ ๊ฒ์ด๊ธฐ์ queue์์ front๋ก ์ฐธ์กฐํ node๋ ๋ณํ์ง ์๋๋ค๋ ์ฑ์ง์ ์ด์ฉํ์ฌ level์ ์ฒดํฌํด์ฃผ๋ฉด ๋๋ค. #include #include #include #include #include using namespace std; int solution(int n, vector edge) { int answer = 0; vect.. 2021. 12. 29. ํ๋ก๊ทธ๋๋จธ์ค (ํ๊ฒ ๋๋ฒ, ๊น์ด/๋๋น ์ฐ์ ํ์(DFS/BFS)) C++ ์ฝ๊ฐ ์.... ์ด๋ฐ ๋ถ์๊ธฐ์ ๋ฌธ์ ๊ฐ ์๋ค. ๋ฑ ํ๋ ์ ๋ ์ฐจ์ด๋๋ +์ - / ์ธ์ ํ ์ฃผ๋ณ์ ๊ฒ๋ค์ ๋น๊ตํ๊ณ ๋ฑ๋ฑ ์ด๊ฒ ๋ฐ๋ก dfs ์ฌ๊ทํจ์๋ฅผ ํ๋ผ๋ ๊ฒ์ด๋ค. ์นด์นด์ค ์ปฌ๋ฌ๋ง๋ถ ๋ฌธ์ ๋ ๋น์ทํ๋ค. ๋๋์ ์ ์งํ์. #include #include using namespace std; int answer = 0; void recur(vector numbers, int target, int sum, int count) { // count๋ ๊ณ์์ ์ผ๋ก ์์ count๊ฐ numbers ๋ฐฐ์ด์ ํฌ๊ธฐ์ ๊ฐ์์ง ๊ฒฝ์ฐ์ // sum ๋ํ ์ํ๋ ํฉ target๊ณผ ๋์ผํ๋ค๋ฉด answer๋ฅผ ์ฆ๊ฐ์ํค๊ณ return;์ผ๋ก ๋์๊ฐ๋ค. if(count == numbers.size()) { if(sum == target) answe.. 2021. 12. 29. ํ๋ก๊ทธ๋๋จธ์ค (์๋ ์ซ์ ๋ํ๊ธฐ, ์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ3) C++ ๊ทธ๋ฅ ๋ฌด๋ํ ์ฝ๋ฉ. ์ ์ฒด ๋ง์ ์์ ํด๋นํ๋ ์ซ์๋ฅผ ๋นผ๋ ๊ฒ๋ ํ๋์ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ํ๋ค. #include #include #include using namespace std; int solution(vector numbers) { int answer = 0; vector arr(10); // arr ๋ผ๋ ๋ฒกํฐ๋ฅผ ๋ง๋ค์ด ์ฃผ์ด์ง ๋ฒํธ์ ํด๋นํ๋ index์ ๊ฐ์ ์ฆ๊ฐ์ํจ๋ค. for(int i =0 ; i < numbers.size() ; i++) { arr[numbers[i]]++; } // ๋ค์ arr ๋ฒกํฐ๋ฅผ ๋๋ฆฌ๋ฉด์ 0์ธ ๊ฐ์ answer์ ๋์ ์ํจ๋ค. for(int i =0 ; i < 10 ; i++) { if(arr[i] == 0) answer += i; } return answer; } 2021. 12. 29. ํ๋ก๊ทธ๋๋จธ์ค (ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์, 2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด์ญ) C++ ์ฒ์ ์ด ๋ฌธ์ ๋ฅผ ์ ๊ทผํ ๋ [row][column]์ด ์์ ๋ column๋ถํฐ ์ ๊ทผ์ ํด์ผํ๋ค๋ ๊ณ ์ ๊ด๋ ๋๋ฌธ์ ์๋ก์ด 2์ฐจ์ ๋ฒกํฐ๋ฅผ ๋ง๋ค์ด์ ํด๊ฒฐ์ ํ๋ค. ์ฝ๋๋ฅผ ๋ณด๋ ์ฌ๋๋ ์ดํดํ๊ธฐ ํ๋ ๊ทธ๋ฐ ํ์ด๋ฒ์ผ๋ก ์งํํ์๋ค. ๋ถ๋ช ํ ๊ฒ์ Stack์ ๊ฐ๋ ์ ์ฌ์ฉํ๋ฉฐ ์๊ณ ๋ฆฌ์ฆ์ ์ฒ์ฒํ ๋ง๋ ๋ค๋ฉด ๊ธ๋ฐฉ ์งค ์ ์๋ ์ฝ๋์ด๋ค. #include #include #include #include using namespace std; int solution(vector board, vector moves) { int answer = 0; stack s; // ์์ง์ธ ํ์๋งํผ for๋ฌธ์ ๋ฐ๋ณต์ํจ๋ค. for(int i = 0 ; i < moves.size() ; i++) { // index๋ผ๋ ๋ณ์์ ์์ง์ธ ์นธ์ ๋ฒํธ๋ฅผ ์ ์ฅ์.. 2021. 12. 29. ํ๋ก๊ทธ๋๋จธ์ค (ํคํจ๋ ๋๋ฅด๊ธฐ, 2020 ์นด์นด์ค ์ธํด์ญ) C++ ๊ฐ๋ก๋ก ์ธ์ ํ ํคํจ๋๋ 1๋งํผ ์ฐจ์ด๊ฐ ๋๊ณ ์ธ๋ก๋ก ์ธ์ ํ ํคํจ๋๋ 3๋งํผ ์ฐจ์ด๊ฐ ๋๋ ์ด ๊ฒฝ์ฐ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํด์ผ ํ ์ง ๋ชฐ๋ผ์ ๊ณ ๋ฏผ์ ๋๋ฌด ๋ง์ด ํ๋ค. ์ฌ์ค ๊ตฌ๊ธ์์ ์ด๋ค ์ฌ๋๋ ๊ณ ๋ฏผํด์ ํด๊ฒฐํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ ์ถฉ๊ฒฉ์ ๋น ์ง.... 3์ผ๋ก ๋๋ ๋ชซ๊ณผ 3์ผ๋ก ๋๋ ๋๋จธ์ง๋ฅผ ๋ํ๋ฉด ๊ทธ ์ฐจ์ด๊ฐ ์์ด์ง๋ค๋ ๊ฒ์ด ์๋กญ๊ฒ ๋ฐ๋ผ๋ณผ ์ ์๋ ์์ผ๋ฅผ ๋ํ๋ค. #include #include #include using namespace std; string solution(vector numbers, string hand) { string answer = ""; int left_count = 10; int right_count = 12; for(int i = 0 ; i < numbers.size() ; i++) { if(numb.. 2021. 12. 29. ํ๋ก๊ทธ๋๋จธ์ค (์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด, 2021 ์นด์นด์ค ์ฑ์ฉ์ฐ๊ณํ ์ธํด์ญ) C++ ์ ๋ ฅ ๋ฐ์ ์์ด์ ์ซ์๊ฐ ์กฐํฉ๋ ๋ฌธ์์ด์์ ํ๋ํ๋ ๋น๊ต๋ฅผ ํตํด case๋ฅผ ๋ง๋ค์๋ค. ์์ด ๋ฌธ์์ด์ด ๋์ค๋ ๊ฒฝ์ฐ ์ ํด์ง ๋จ์ด์ ๊ธธ์ด๋ฅผ ์๊ฐํด์ one ๋ถํฐ nine๊น์ง๋ฅผ ๋ถ๋ฅํ๋ค. #include #include #include using namespace std; int solution(string s) { int answer = 0; string arr = ""; for(int i = 0 ; i = '0' && s[i] 2021. 12. 29. ํ๋ก๊ทธ๋๋จธ์ค (์คํ์ฑํ ๋ฐฉ, 2019 KAKAO BLIND RECRUITMENT) C++ ๊ณต๋ฐฑ์ด ํฌํจ๋ ๋ฌธ์์ด์ธ stringstream์ ์ฌ์ฉํ๋ ๋ฒ์ ์ฒ์ ๋ฐฐ์ ๋ค. ์ผ์ผ์ด if๋ฌธ์ ํตํด์ substr๋ก ๋น๊ต๋ฅผ ํ๊ณ ์ด๋ฅผ ํตํด Test Case๋ฅผ ํต๊ณผํ ๋ฐฉ๋ฒ์ ๊ตฌํ์ ํ์ผ๋ Time Problem์ผ๋ก ์คํจํ์๋ค. Stringstream์ ํตํด์ ๊ฐํธํ ์ํ๋ ๋จ์ด๋ฅผ ๋ฝ์๋ด๊ณ If ๋ฌธ์ ํ์ฉํด์ ์ํ๋ ๋ ผ๋ฆฌ๋ก ๊ตฌํ์ํฌ ์ ์์๋ค. Map ์ ๊ฒฝ์ฐ๋ insert(make_pair)์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๊ณ find("์ฐพ๊ณ ์ ํ๋ ๋ฌธ์์ด")->second ์ด๋ ๊ฒ ์ ์ธํด์ ํ ๋น์ ํ์๋ค. ์ด์ ๋ ์ํ๋ ๋ฌธ์์ด์ indexํ ์์ผ์ ํ ๋น์ ํด๋ ๋ ๊ฒ ๊ฐ๋ค. ์ฌ์ค ์ด ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌ๊ธ์ ์กด์ฌํ๋ ๋ฐฉ๋ฒ ์ค ํ๋์ด๋ค. ๊ทธ๋๋ ๋ฐฐ์ด๊ฑด ๋ฐฐ์ด ๊ฑฐ๋... #include #include #include #include .. 2021. 12. 29. ์ด์ 1 2 3 4 5 6 7 ๋ค์