๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿš“ 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.