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

๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜

(140)
[C++/๋ฐฑ์ค€] 1924 : 2007๋…„ ๋ฌธ์ œ ์˜ค๋Š˜์€ 2007๋…„ 1์›” 1์ผ ์›”์š”์ผ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด 2007๋…„ x์›” y์ผ์€ ๋ฌด์Šจ ์š”์ผ์ผ๊นŒ? ์ด๋ฅผ ์•Œ์•„๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ๋นˆ ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  x(1 ≤ x ≤ 12)์™€ y(1 ≤ y ≤ 31)์ด ์ฃผ์–ด์ง„๋‹ค. ์ฐธ๊ณ ๋กœ 2007๋…„์—๋Š” 1, 3, 5, 7, 8, 10, 12์›”์€ 31์ผ๊นŒ์ง€, 4, 6, 9, 11์›”์€ 30์ผ๊นŒ์ง€, 2์›”์€ 28์ผ๊นŒ์ง€ ์žˆ๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์— x์›” y์ผ์ด ๋ฌด์Šจ ์š”์ผ์ธ์ง€์— ๋”ฐ๋ผ SUN, MON, TUE, WED, THU, FRI, SAT์ค‘ ํ•˜๋‚˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋ฐฑ์ค€ ์—ด์‹ฌํžˆ ํ•ด์•ผ์ง€..... ์ด ๋ฌธ์ œ๋Š” ๋‚ ์งœ ์š”์ผ ๋งž์ถ”๋Š” ๊ตฌํ˜„? DP? ๋ฌธ์ œ์ด๋‹ค ์‚ฌ์‹ค ๋‚œ์ด๋„๋„ ์‰ฌ์›Œ์„œ ๋”ฑํžˆ ๋ถ„๋ฅ˜์˜ ์˜๋ฏธ๋„ ์—†๊ธดํ•จ ๋ธŒ๋ก ์ฆˆ 1ํ‹ฐ์–ด ๋ฌธ์ œ์ด๋‹ค 1์›” ์ž…๋ ฅ์€ ๋”ฐ๋กœ ๋นผ๋†จ๋‹ค๊ฐ€ ๋‚˜์ค‘์— ์™œ ์ด๋ ‡๊ฒŒ ํ–ˆ์ง€...?..
[์ฝ”๋“œํŠธ๋ฆฌ] DFS / BFS ์†Œ๋งˆ ์„œ๋ฅ˜์— ๋œ์ปฅ ๋ถ™์–ด๋ฒ„๋ฆฌ๊ณ , ์ฝ”ํ…Œ ์ค€๋น„ 4์ผ์ „์‚ฌ ๋„์ „... ์ž์ฃผ ๋‚˜์˜จ๋‹ค๋Š” ์œ ํ˜•์„ ๊ธ‰ํ•˜๊ฒŒ ๊ณต๋ถ€ํ•ด๋ด…๋‹ˆ๋‹ค ํ•˜ํ•˜ DFS๋Š” Depth First Search, ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰์ž…๋‹ˆ๋‹ค. ์ด๋ฆ„์ฒ˜๋Ÿผ ์ตœ๋Œ€ํ•œ ๊นŠ๊ฒŒ ํƒ์ƒ‰ํ•œ ํ›„ ๋” ์ด์ƒ ๋„๋‹ฌํ•  ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด ๋‹ค์‹œ ์ด์ „์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ ๊ฒƒ์€ ๊นŠ๊ฒŒ ํƒ์ƒ‰ํ•˜๊ณ  ๋‚˜์„œ ์ด์ „๊ณผ์ •์œผ๋กœ ๋Œ์•„๊ฐ€์•ผ ํ•œ๋‹ค๋Š” ์  ์ž…๋‹ˆ๋‹ค. DFS๋Š” ์žฌ๊ท€(์Šคํƒ)๋ฅผ ํ™œ์šฉํ•ด ๊ตฌํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์žˆ๋Š” ์ง€์ ์ด ์žˆ๋‹ค๋ฉด ๊ทธ ์ง€์ ์„ ๋ฐฉ๋ฌธํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์žฌ๊ท€์ ์œผ๋กœ ํ˜ธ์ถœํ•˜๊ณ , ๋” ์ด์ƒ ๋ฐฉ๋ฌธํ•  ๊ณณ์ด ์—†๋‹ค๋ฉด ํ•จ์ˆ˜๋ฅผ ์ข…๋ฃŒํ•˜๋ฉด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ์ด๋ฏธ ๋ฐฉ๋ฌธํ–ˆ๋˜ ์ง€์ ์„ ๋˜ ๋ฐฉ๋ฌธํ•˜๋ฉด ํšจ์œจ์ด ๋–จ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ์ด์ „์— ๋ฐฉ๋ฌธํ–ˆ๋˜ ์ง€์ ์€ ๋‹ค์‹œ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ ๋ฐฉ๋ฌธํ•œ ์ง€์ ์€ ์–ด๋–ค ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์„œ ๋” ์ด์ƒ ๋ฐฉ..
[PGS] Lv.0 (์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ž…๋ฌธ) 12์ผ์ฐจ ๋ฌธ์ œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ ˆ๋ฒจ 0 ๋ฌธ์ž์—ด, ์ •๋ ฌ, ์‚ฌ์น™์—ฐ์‚ฐ, ์ˆ˜ํ•™ โœ๐Ÿป ๋ฌธ์ž์—ด ๋Œ€์ฒด → my_string.replace(j,1,""); : ์ธ๋ฑ์Šค j์˜ ์›์†Œ๋ถ€ํ„ฐ ๊ธธ์ด 1๋งŒํผ์„ “”๋กœ ๋Œ€์ฒด โœ๐Ÿป ๋ฌธ์ž ๋‚ด์šฉ์ด ์ˆซ์ž์ธ์ง€? → isdigit(c) : ์ˆซ์ž๋ฉด ์–‘์ˆ˜, ์•„๋‹ˆ๋ฉด 0์„ ๋ฆฌํ„ดํ•จ โœ๐Ÿป vector to set → set s(v.begin(), v.end()); โœ๐Ÿป set to vector → vector v(s.begin(), s.end()); ๋ชจ์Œ ์ œ๊ฑฐ string solution(string my_string) { string m = "aeiou"; for(int i=0; i
[PGS] Lv.0 (์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ž…๋ฌธ) 11์ผ์ฐจ ๋ฌธ์ œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ ˆ๋ฒจ 0 ์ˆ˜ํ•™, ๋ฐ˜๋ณต๋ฌธ ์ฃผ์‚ฌ์œ„์˜ ๊ฐœ์ˆ˜ int solution(vector box, int n) { int a = box[0]/n; int b = box[1]/n; int c = box[2]/n; int answer = a*b*c; return answer; } ํ•ฉ์„ฑ์ˆ˜ ์ฐพ๊ธฐ int solution(int n) { int answer = 0; for(int i=4; i
[PGS] Lv.0 (์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ž…๋ฌธ) 10์ผ์ฐจ ๋ฌธ์ œ โœ๐Ÿป ๋ฒกํ„ฐ numbers ์™€ tmp ์—ฐ๊ฒฐํ•˜๊ธฐ (ํ•ฉ์น˜๊ธฐ) → numbers.insert( numbers.end(), tmp.begin(), tmp.end() ) โœ๐Ÿป ๋ฒกํ„ฐ์˜ ์ฒซ ์›์†Œ ์‚ญ์ œํ•˜๊ธฐ → v.erase( v.begin() ) ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ ˆ๋ฒจ 0 ์กฐ๊ฑด๋ฌธ, ๋ฐฐ์—ด, ์ˆ˜ํ•™, ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ ์˜ ์œ„์น˜ ๊ตฌํ•˜๊ธฐ int solution(vector dot) { if(dot[0]>0 && dot[1]>0) return 1; if(dot[0]0) return 2; if(dot[0]
[์ฝ”๋“œํŠธ๋ฆฌ] TreeSet ์—ฐ์Šต๋ฌธ์ œ ๋ฌธ์ œ : top K ์ˆซ์ž n๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ค‘๋ณต์„ ์ œ์™ธํ•˜๊ณ  ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ–ˆ์„ ๋•Œ ์•ž์— ์žˆ๋Š” k๊ฐœ์˜ ์ˆซ์ž๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”. ์ž…๋ ฅ ํ˜•์‹ ์ฒซ ๋ฒˆ์งธ ์ค„์—๋Š” ์›์†Œ์˜ ๊ฐœ์ˆ˜ n๊ณผ k๊ฐ€ ๊ณต๋ฐฑ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ์ค„์—๋Š” n๊ฐœ์˜ ์›์†Œ๊ฐ€ ๊ณต๋ฐฑ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. 1 ≤ k ≤ n ≤ 100,000 1 ≤ ์ฃผ์–ด์ง€๋Š” ์›์†Œ ๊ฐ’ ≤ 109 ์ถœ๋ ฅ ํ˜•์‹ ์ค‘๋ณต์„ ์ œ์™ธํ•˜๊ณ  ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ–ˆ์„ ๋•Œ ์•ž์— ์žˆ๋Š” k๊ฐœ์˜ ์ˆซ์ž๋ฅผ ๊ณต๋ฐฑ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ค‘๋ณต์„ ์ œ์™ธํ–ˆ์„ ๋•Œ ์›์†Œ์˜ ๊ฐœ์ˆ˜๊ฐ€ k๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ๋Š” ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋„ ์ข‹์Šต๋‹ˆ๋‹ค. ๋‚˜์˜ ํ’€์ด #include #include using namespace std; int main() { int n; int k; int a; set s..
[์ฝ”๋“œํŠธ๋ฆฌ] Tree Set SW์ค‘์‹ฌ๋Œ€ํ•™ ์‚ฌ์—…๋‹จ์—์„œ CodeTree์™€ ํ•จ๊ป˜ ์‹ค์‹œํ•œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„ ์บ ํ”„์— ์ฐธ์—ฌํ•˜์—ฌ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. * ์ฐธ๊ณ  : python๊ณผ c++, java ๋“ฑ ์–ธ์–ด๋ณ„๋กœ ์„ค๋ช…์ด ๋‹ค๋ฅธ ๋ถ€๋ถ„ ์กด์žฌ! ํ•„์ž๋Š” c++ ์‚ฌ์šฉ. set STL C++์—์„œ๋Š” set์ด๋ผ๋Š” STL์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. set์€ TreeSet ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๋˜์–ด์žˆ์œผ๋ฉฐ, ์ด TreeSet์ด ๋ฐ”๋กœ ๊ท ํ˜• ์žกํžŒ ์ด์ง„ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ๋ฐ์ดํ„ฐ๋“ค์„ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ํ•จ์ˆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(logN)์ž…๋‹ˆ๋‹ค. set์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” #include ํ—ค๋”์™€, set name; ํ˜•ํƒœ์˜ ์„ ์–ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. T๋Š” ํƒ€์ž…์œผ๋กœ, set ์•ˆ์— ๋“ค์–ด๊ฐˆ ์›์†Œ์˜ ํƒ€์ž…์„ ์ ์–ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. #include #include using namespace std; in..
[์ฝ”๋“œํŠธ๋ฆฌ] Hash Set ์—ฐ์Šต๋ฌธ์ œ ๋ฌธ์ œ : ๋ฐ์ดํ„ฐ ๋น„๊ต ์ •์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ๋‘ ์ˆ˜์—ด์„ ๋น„๊ตํ•˜์—ฌ ๊ฐ™์€ ์›์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ํŒ๋‹จํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ๋ณด์„ธ์š”. ์ž…๋ ฅ ํ˜•์‹ ์ฒซ ๋ฒˆ์งธ ์ค„์—๋Š” ์ˆ˜์—ด 1์˜ ์›์†Œ์˜ ๊ฐœ์ˆ˜ n์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ์ค„์—๋Š” ์ˆ˜์—ด 1์˜ ์›์†Œ๋“ค์ด ๊ณต๋ฐฑ์„ ๋‘๊ณ  ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์„ธ ๋ฒˆ์งธ ์ค„์—๋Š” ์ˆ˜์—ด 2์˜ ์›์†Œ์˜ ๊ฐœ์ˆ˜ m์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋„ค ๋ฒˆ์งธ ์ค„์—๋Š” ์ˆ˜์—ด 2์˜ ์›์†Œ๋“ค์ด ๊ณต๋ฐฑ์„ ๋‘๊ณ  ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. 1 ≤ n, m ≤ 100,000 −109 ≤ ์ฃผ์–ด์ง€๋Š” ์ˆซ์ž์˜ ๋ฒ”์œ„ ≤ 109 ์ถœ๋ ฅ ํ˜•์‹ ์ˆ˜์—ด 2์˜ ์›์†Œ์˜ ์ˆœ์„œ๋Œ€๋กœ ๊ทธ ์›์†Œ๊ฐ€ ์ˆ˜์—ด 1์— ์กด์žฌํ•˜๋Š” ์›์†Œ์ด๋ฉด 1์„, ์ˆ˜์—ด 1์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์›์†Œ์ด๋ฉด 0์„ ๊ณต๋ฐฑ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋‚˜์˜ ํ’€์ด #include #include using namespace std; int main() { unor..

728x90