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

๐Ÿš“ Self Study65

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ, 2017 ํŒ์Šคํƒ€์šด) C++ Stack์˜ ๊ฐœ๋…์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ๋˜ ๋ฌธ์ œ์ด๋‹ค. ํ˜„์žฌ์˜ ๊ฒƒ๊ณผ ์ด์ „์˜ ๊ฒƒ์„ ๋น„๊ตํ•˜๊ณ  erase ํ•˜๊ฒŒ ๋˜๋Š” ๊ฒฝ์šฐ stack์„ ์‚ฌ์šฉํ•˜๋ฉด ํšจ์œจ์„ฑ ์ธก๋ฉด์—์„œ ํ›จ์”ฌ ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๋ฐฐ์› ๋‹ค. #include #include #include using namespace std; int solution(string s) { int answer = -1; stack st; // ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋งŒํผ ๊ฒ€์‚ฌ๋ฅผ ํ•œ๋‹ค. for(int i = 0 ; i < s.size() ; i++) { // stack์ด ๋น„์–ด์žˆ๊ฑฐ๋‚˜ ๋ฌธ์ž์—ด์˜ ํ˜„์žฌ ๋ฌธ์ž์™€ top์ด ๊ฐ™์ง€ ์•Š๋‹ค๋ฉด push๋ฅผ ํ•œ๋‹ค. if(st.empty() || st.top() != s[i]) st.push(s[i]); // top๊ณผ ํ˜„์žฌ ๋ฌธ์ž๊ฐ€ ๊ฐ™๋‹ค๋ฉด ์ œ๊ฑฐ.. 2022. 1. 4.
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (๊ธฐ๋Šฅ ๊ฐœ๋ฐœ, ์Šคํƒ/ํ) C++ Queue๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋™์ผํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์ง„ํ–‰ํ–ˆ๋Š”๋ฐ Time ์ดˆ๊ณผ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธด๋‹ค. ๋‹ค๋ฅธ ๊ฒฝ์šฐ๋Š” ๋‹ค ํ†ต๊ณผํ–ˆ๋Š”๋ฐ Queue๋ž‘ Vector์˜ ์ฐจ์ด๊ฐ€ ์ด๋ ‡๊ฒŒ ์‹ฌํ•œ๊ฐ€... ์ƒ๊ฐ์ด ๋“ ๋‹ค. #include #include #include using namespace std; vector solution(vector progresses, vector speeds) { vector answer; int front_index = 0; int count = 0; while(front_index != progresses.size()) { // ๊ฐ ์ž‘์—…์„ ํ•œ ๋ฒˆ์”ฉ ์ง„ํ–‰์‹œํ‚ค๋Š” for๋ฌธ for(int i =0 ; i < progresses.size() ; i++) { progresses[i] += speeds[i]; } .. 2022. 1. 3.
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (124 ๋‚˜๋ผ, ์—ฐ์Šต๋ฌธ์ œ) C++ ์žฌ๊ท€ํ•จ์ˆ˜๋กœ ํ–ˆ์—ˆ๋‹ค๊ฐ€ ์ฝ”๋“œ ๋‚ญ๋น„๊ฐ€ ๋งŽ์•„์ ธ์„œ ๋ฌดํ•œ๋ฃจํ”„ ์•ˆ์—์„œ ํ•ด๊ฒฐํ–ˆ๋‹ค. #include #include #include using namespace std; string solution(int n) { string answer = ""; int top = n; int bottom = 0; while(true) { bottom = top % 3; top = top / 3; switch(bottom) { case 0: answer = '4' + answer; top -= 1; break; case 1: answer = '1' + answer; break; case 2: answer = '2' + answer; break; } if(top == 0) break; } return answer; } 2022. 1. 3.
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (์‹คํŒจ์œจ, 2019 KAKAO BLIND RECRUITMENT) C++ ์นด์นด์˜ค ๋ฌธ์ œ๋กœ vector๊ฐ€ ์ฃผ์–ด์ง€๋Š” ๊ฒฝ์šฐ ๊ฑฐ์˜ ์ด์ค‘ for๋ฌธ์œผ๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋งŽ์€ ๊ฒƒ ๊ฐ™๋‹ค. ์˜ค๋žœ๋งŒ์— ์ฃผ์„์„ ๋จผ์ € ๋‹ฌ๊ณ  ์ฝ”๋“œ๋ฅผ ์งฐ๋Š”๋ฐ ์ƒ๊ฐ๋ณด๋‹ค ์ž˜ ์งœ์กŒ๋‹ค. Map์„ ํ™œ์šฉํ•ด์„œ value์— ๋Œ€ํ•ด ์˜ค๋ฆ„์ฐจ์ˆœ/๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ•˜๋Š” ๋ฒ•์„ ์ฒดํ™”ํ•œ ๊ฒƒ ๊ฐ™๋‹ค. #include #include #include #include #include using namespace std; bool cmp(const pair& a, const pair& b) { // value๊ฐ€ ๊ฐ™๋‹ค๋ฉด key์— ํ•ด๋‹นํ•˜๋Š” ๊ฒƒ์€ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค. if(a.second == b.second) return a.first b.second; .. 2022. 1. 3.
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (๋ฉ€์ฉกํ•œ ์‚ฌ๊ฐํ˜•, Summer/Winter Coding(2019)) C++ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ "์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•"์ด ๊ตฌ๊ธ€์— ๊ฐ€์žฅ ๋งŽ์ด ๋‚˜์™€์žˆ์–ด์„œ ํ•ด๋‹น ๋ฐฉ๋ฒ•์„ ์ตํ˜€๋ณด์ž ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉ์„ ํ–ˆ๋‹ค. ๊ฐ€๋กœ์™€ ์„ธ๋กœ๋ฅผ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋กœ ๋‚˜๋ˆ„์–ด์„œ ๊ทœ์น™์„ ์ฐพ์•„๋ณด๋ ค๊ณ  ํ–ˆ์ง€๋งŒ ์ƒ๊ฐ๋ณด๋‹ค ๊ทœ์น™์„ ์ฐพ๋Š”๊ฒŒ ์‰ฝ์ง€ ์•Š์•„์„œ ํž˜๋“ค์—ˆ๋‹ค. GCD ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ• ํ•˜๋‚˜ ์ •๋„๋Š” ์™ธ์šฐ๋Š” ๊ฒƒ๋„ ๋‚˜์˜์ง€ ์•Š์•„๋ณด์ธ๋‹ค. using namespace std; long long gcd(int x, int y) { long long temp =0 ; while(y != 0) { temp = x % y; x = y; y = temp; } return x; } long long solution(int w,int h) { long long answer = 1; long long W = w; long long H = h; long long.. 2022. 1. 3.
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (ํฌ์ผ“๋ชฌ, ์ฐพ์•„๋ผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋งˆ์Šคํ„ฐ) C++ ์ค‘๋ณต์„ฑ์„ ์ œ๊ฑฐํ•ด์ค˜์•ผ ํ•œ๋‹ค. -> Set ์ด์šฉ set set; ์ƒˆ๋กœ์šด ์š”์†Œ ์ถ”๊ฐ€ set.insert(์š”์†Œ); #include #include #include using namespace std; int solution(vector nums) { int answer = 0; int number = nums.size()/2; set set; // nums ๋ฐฐ์—ด์— ๋‹ด๊ธด ์ˆซ์ž์˜ ์ค‘๋ณต์„ฑ์„ ์—†์• ์ฃผ๊ธฐ ์œ„ํ•ด์„œ set์„ ์„ ์–ธํ•˜๊ณ  ๋„ฃ์–ด์ค€๋‹ค. for(int i = 0 ; i < nums.size() ; i++) { set.insert(nums[i]); } // ์ข…๋ฅ˜๊ฐ€ N/2 ๋ณด๋‹ค ์ž‘๋‹ค๋ฉด ๊ทธ๋Œ€๋กœ answer์— ๋„ฃ์–ด์ฃผ๊ณ  // ์•„๋‹ˆ๋ฉด N/2๋ฅผ answer๋ฅผ ๋‹ต์— ๋„ฃ์–ด์ค€๋‹ค. if(number 2022. 1. 2.
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (๋‹จ์ฒด์‚ฌ์ง„ ์ฐ๊ธฐ, 2017 ์นด์นด์˜ค๋ณธ์„  ์ฝ”๋“œ) C++ ์ฝ”๋”ฉ์œผ๋กœ ์ˆœ์—ด ์กฐํ•ฉ์— ๋Œ€ํ•ด์„œ ์นด์šดํŠธ ํ•ด์ฃผ๋Š” ๋ฌธ์ œ๋ฅผ ์ ‘ํ•ด๋ณธ ์ ์ด ์—†์—ˆ๋‹ค. ์†์œผ๋กœ ํ’€์–ด๋ดค๋Š”๋ฐ ์ด๊ฑฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์กฐ๊ฑด์„ ํ•˜๋‚˜ ํ•˜๋‚˜ ์ฒดํฌํ•˜์ง€ ๋ผ๋Š” ์ƒ๊ฐ ๋ฟ์ด์—ˆ๊ณ , ํ•ด๊ฒฐํ•  ๋ฐฉ๋ฒ•์„ ๋ชฐ๋ž๋‹ค. ๊ฒฐ๊ตญ ๊ตฌ๊ธ€๋ง์œผ๋กœ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ๋‹ต์•ˆ์„ ๋ณด๋ฉด์„œ ๊ณต๋ถ€ํ–ˆ๋‹ค. next_permutation์„ ์ด์šฉํ•ด์„œ ์˜ค๋ฆ„์ฐจ์ˆœ์—์„œ ๋‚ด๋ฆผ์ฐจ์ˆœ๊นŒ์ง€์˜ ๋ชจ๋“  ์ˆœ์—ด ์กฐํ•ฉ์„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. do while ๋ฌธ์„ ํ†ตํ•ด์„œ ์กฐ๊ฑด์ด ์—†๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ  ์›ํ•˜๋Š” ์กฐ๊ฑด์„ flag๋ฅผ ํ†ตํ•ด์„œ ์นด์šดํŠธํ•  ์ง€ ๋ง์ง€๋ฅผ ๊ฒฐ์ •ํ•ด์•ผ ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด์—ˆ๋‹ค. #include #include #include using namespace std; // ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•  ๊ฒฝ์šฐ ํ•จ์ˆ˜ ๋‚ด์— ์ดˆ๊ธฐํ™” ์ฝ”๋“œ๋ฅผ ๊ผญ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. int solution(int n, vector data) {.. 2022. 1. 2.
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (ํŠœํ”Œ, 2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ) C++ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด์„ ์ฝค๋งˆ์™€ ์ค‘๊ด„ํ˜ธ๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ˆซ์ž๋กœ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๊ณ  ๋˜ ๊ฐ€์žฅ ๊ธด ๋ฐฐ์—ด์˜ ์ˆœ์„œ๋ฅผ ๊ฐ€์ ธ์˜ค๋ฉด ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ ์ด๋ ‡๊ฒŒ ์ ‘๊ทผํ•ด์„œ ํ’€์—ˆ๋‹ค. ํ•˜์ง€๋งŒ answer์˜ ์ •๋ ฌ ์ˆœ์„œ๋Š” ํ•ด๋‹น ์ˆซ์ž๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋ฐ˜๋ณต๋˜์–ด์„œ ๋‚˜์™”๋Š”์ง€๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ–ˆ๋‹ค. ์ด๋Š” Map์„ ์ด์šฉํ•ด์„œ value์˜ ๊ฐ’์„ ๊ณ„์†์ ์œผ๋กœ count๋ฅผ ์‹œ์ผœ์„œ ์ €์žฅํ•ด์•ผ ํ–ˆ๋‹ค. 1. map map ์„ ์„ ์–ธํ•˜๊ณ  ์‚ฌ์šฉํ•  ๋•Œ value๊ฐ’์ด 0์œผ๋กœ ์ดˆ๊ธฐํ™”๊ฐ€ ๋˜๋Š”์ง€๊ฐ€ ๊ถ๊ธˆํ–ˆ๋‹ค. -> 0์œผ๋กœ ์ดˆ๊ธฐ๊ฐ’์ด ๊ธฐ๋ณธ ์„ค์ •๋˜์–ด ์žˆ๋‹ค. 2. sort(map.begin(), map.end())๋ฅผ ํ†ตํ•ด์„œ value ์˜ ์˜ค๋ฆ„์ฐจ์ˆœ, ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ์‹œํ‚ฌ ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•˜๋Š”๊ฐ€ -> vector๋กœ ๋ณต์‚ฌํ•œ ํ›„ sort๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค ํ•™๊ต ๊ณผ์ œ์—์„œ ์ˆ˜ํ–‰ํ–ˆ์—ˆ๋˜ ๋ฌธ์ž์—ด ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋ณต์žกํ•˜์ง€ ์•Š์•„์„œ ๊ตฌ๋ถ„ํ•˜๋Š”.. 2022. 1. 1.
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (์ž…๊ตญ์‹ฌ์‚ฌ, ์ด๋ถ„ํƒ์ƒ‰) C++ n ๋ช…์˜ ์‚ฌ๋žŒ๋“ค์ด times ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋งŒํผ์˜ ์ž…๊ตญ ์‹ฌ์‚ฌ๋ฅผ ๊ฐ€์žฅ ๋นจ๋ฆฌ ํ†ต๊ณผํ•  ์ˆ˜ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ž‘์„ฑํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋ณด์ž๋งˆ์ž while ๋ฌธ ์•ˆ์—์„œ sec๋ฅผ ํ•˜๋‚˜์”ฉ ์ฆ๊ฐ€ํ•ด์ฃผ๊ณ  ์นด์šดํŠธ๋ฅผ ํ•ด์ฃผ๋ฉด์„œ ๋งˆ์ง€๋ง‰ ํ•œ ๋ช…์ด ๋‚จ์•˜์„ ๋•Œ ์–ด๋Š ์ž…๊ตญ ์‹ฌ์‚ฌ๋Œ€๋ฅผ ํ†ต๊ณผํ•ด์•ผ ๊ฐ€์žฅ ์งง์€ ์‹œ๊ฐ„์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š”์ง€ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์•˜๋‹ค. ๋‹ค์Œ์€ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ํ•˜๋‚˜๋ฅผ ํ†ต๊ณผํ•œ ์ฝ”๋“œ ์ž‘์„ฑ์ด๋‹ค. #include #include #include using namespace std; long long solution(int n, vector times) { long long answer = 0; int sec = 0; int sum = 0; long long min = 1000000001; int member = 0; vect.. 2022. 1. 1.
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (๋” ๋งต๊ฒŒ, ํž™(Heap)) C++ // ๊ธฐ๋ณธ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๋Š” ํ๊ฐ€ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ์ด ๋œ๋‹ค. Priority_queue pq; // ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋ฒกํ„ฐ๋ฅผ ์ •๋ ฌํ•  ๋•Œ Priority_queue pq; // ์šฐ์„ ์ˆœ์œ„ ํ์˜ ์›์†Œ ์‚ฝ์ž… pq.push(์›์†Œ); // ์šฐ์„ ์ˆœ์œ„์˜ ๊ฐ€์žฅ ์•ž์˜ ์›์†Œ ํ™•์ธ pq.top(); // ์šฐ์„ ์ˆœ์œ„์˜ ๊ฐ€์žฅ ์•ž์˜ ์›์†Œ ์ œ๊ฑฐ pq.pop(); // ํฌ๊ธฐ ํ™•์ธ ๋ฐ ๋น„์–ด์žˆ๋Š”์ง€ ์œ ๋ฌด pq.size(); pq.empty(); ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์“ฐ์ง€ ์•Š๊ณ ๋Š” ์ •๋‹ต์ฒ˜๋ฆฌ๊ฐ€ ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ์˜€๋‹ค. ๊ธฐ์กด์—๋Š” sort๋ฅผ ์ด์šฉํ•ด์„œ while ๋ฌธ ์•ˆ์—์„œ ๊ณ„์†์ ์œผ๋กœ ์ •๋ ฌ์„ ์‹œ์ผœ์คฌ๋Š”๋ฐ ์ด๋Š” ํšจ์œจ์„ฑ ์ธก๋ฉด์—์„œ ์ข‹์ง€ ์•Š์Œ์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ๋‹ค. priority_queue๋ฅผ ์„ ์–ธํ•˜๋ฉด ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ž๋™ ์ •๋ ฌ๋˜๊ณ  ์ด๋ฅผ ์ด์šฉํ•ด topํ™•์ธpop ์ œ๊ฑฐ push ์ถ”๊ฐ€๋ฅผ ํ•œ๋‹ค๋ฉด .. 2022. 1. 1.