[Python] ๋ฐฑ์ค€ 1613 - ์—ญ์‚ฌ
ยท
Algorithm/Python
๋ฌธ์ œ ์—ญ์‚ฌ, ๊ทธ ์ค‘์—์„œ๋„ ํ•œ๊ตญ์‚ฌ์— ํ•ด๋ฐ•ํ•œ ์„ธ์ค€์ด๋Š” ๋งŽ์€ ์—ญ์‚ฌ์  ์‚ฌ๊ฑด๋“ค์˜ ์ „ํ›„ ๊ด€๊ณ„๋ฅผ ์ž˜ ์•Œ๊ณ  ์žˆ๋‹ค. ์ฆ‰, ์ž„์ง„์™œ๋ž€์ด ๋ณ‘์žํ˜ธ๋ž€๋ณด๋‹ค ๋จผ์ € ์ผ์–ด๋‚ฌ์œผ๋ฉฐ, ๋ฌด์˜ค์‚ฌํ™”๊ฐ€ ๊ธฐ๋ฌ˜์‚ฌํ™”๋ณด๋‹ค ๋จผ์ € ์ผ์–ด๋‚ฌ๋‹ค๋Š” ๋“ฑ์˜ ์ง€์‹์„ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ์„ธ์ค€์ด๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ์ผ๋ถ€ ์‚ฌ๊ฑด๋“ค์˜ ์ „ํ›„ ๊ด€๊ณ„๋“ค์ด ์ฃผ์–ด์งˆ ๋•Œ, ์ฃผ์–ด์ง„ ์‚ฌ๊ฑด๋“ค์˜ ์ „ํ›„ ๊ด€๊ณ„๋„ ์•Œ ์ˆ˜ ์žˆ์„๊นŒ? ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ๋ณด๋„๋ก ํ•˜์ž. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์ฒซ ์ค„์— ์‚ฌ๊ฑด์˜ ๊ฐœ์ˆ˜ n(400 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜)๊ณผ ์•Œ๊ณ  ์žˆ๋Š” ์‚ฌ๊ฑด์˜ ์ „ํ›„ ๊ด€๊ณ„์˜ ๊ฐœ์ˆ˜ k(50,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ k์ค„์—๋Š” ์ „ํ›„ ๊ด€๊ณ„๋ฅผ ์•Œ๊ณ  ์žˆ๋Š” ๋‘ ์‚ฌ๊ฑด์˜ ๋ฒˆํ˜ธ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด๋Š” ์•ž์— ์žˆ๋Š” ๋ฒˆํ˜ธ์˜ ์‚ฌ๊ฑด์ด ๋’ค์— ์žˆ๋Š” ๋ฒˆํ˜ธ์˜ ์‚ฌ๊ฑด๋ณด๋‹ค ๋จผ์ € ์ผ์–ด๋‚ฌ์Œ์„ ์˜๋ฏธํ•œ๋‹ค. ๋ฌผ๋ก  ์‚ฌ๊ฑด์˜ ์ „ํ›„ ๊ด€๊ณ„๊ฐ€ ๋ชจ์ˆœ์ธ ๊ฒฝ์šฐ๋Š” ์—†๋‹ค...
[Python] ๋ฐฑ์ค€ 6118 - ์ˆจ๋ฐ”๊ผญ์งˆ
ยท
Algorithm/Python
๋ฌธ์ œ ์žฌ์„œ๊ธฐ๋Š” ์ˆ˜ํ˜€๋‹ˆ์™€ ๊ต์™ธ ๋†์žฅ์—์„œ ์ˆจ๋ฐ”๊ผญ์งˆ์„ ํ•˜๊ณ  ์žˆ๋‹ค. ๋†์žฅ์—๋Š” ํ—›๊ฐ„์ด ๋งŽ์ด ๋„๋ ค์žˆ๊ณ  ์žฌ์„œ๊ธฐ๋Š” ๊ทธ ์ค‘์— ํ•˜๋‚˜์— ์ˆจ์–ด์•ผ ํ•œ๋‹ค. ํ—›๊ฐ„์˜ ๊ฐœ์ˆ˜๋Š” N(2
[Python] ๊ทธ๋ž˜ํ”„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์นœ๊ตฌ์˜ ์นœ๊ตฌ์ฐพ๊ธฐ
ยท
Algorithm/Python
๋ชจ๋“  ์นœ๊ตฌ ์ฐพ๊ธฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ def print_all_friends(g, start): qu = [] #์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ์‚ฌ๋žŒ๋“ค ์ €์žฅ done = set() #์ด๋ฏธ ํ์— ์ถ”๊ฐ€ํ•œ ์‚ฌ๋žŒ๋“ค์„ ์ง‘ํ•ฉ์— ๊ธฐ๋ก(์ค‘๋ณต๋ฐฉ์ง€) qu.append(start) done.add(start) while qu: #ํ์— ์ฒ˜๋ฆฌํ•  ์‚ฌ๋žŒ์ด ๋‚จ์•„์žˆ๋Š” ๋™์•ˆ์— p = qu.pop(0) print(p) for x in g[p]: #๊ทธ์˜ ์นœ๊ตฌ๋“ค ์ค‘์— if x not in done: #์•„์ง ํ์— ์ถ”๊ฐ€๋œ์  ์—†๋Š” ์‚ฌ๋žŒ์„ qu.append(x) done.add(x) fr_info = { 'Summer': ['John', 'Justin', 'Mike'], 'John': ['Summer', 'Justin'], 'Justin': ['John', 'Summer', 'M..
[Python] ํ์™€ ์Šคํƒ(queue, stack)
ยท
Algorithm/Python
ํ ํ๋Š” ์„ ์ž…์„ ์ถœ ๋ฐฉ์‹์˜ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฒ„์Šค๋ฅผ ํƒ€๋ ค๊ณ  ์Šน๊ฐ•์žฅ์— ๋„์ฐฉํ•œ ์Šน๊ฐ๋“ค์€ ์ฐจ๋ก€๋Œ€๋กœ ์ค„์„ ์„œ๊ฒŒ๋œ๋‹ค. ์Šน๊ฐ๋“ค์€ ๋จผ์ € ์˜จ ์ˆœ์„œ๋Œ€๋กœ ๋ฒ„์Šค์— ํƒ‘์Šนํ•˜๊ฒŒ ๋œ๋‹ค. ํ์— ์ž๋ฃŒ๋ฅผ ํ•œ ๊ฐœ ์ง‘์–ด๋„ฃ๋Š” ๋™์ž‘์„ '์ธํ(enqueue)', ํ ์•ˆ์— ์žˆ๋Š” ์ž๋ฃŒ๋ฅผ ํ•œ ๊ฐœ ๊บผ๋‚ด๋Š” ๋™์žฅ์„ '๋””ํ(dequeue)'๋ผ๊ณ  ํ•œ๋‹ค. ์Šคํƒ ์Šคํƒ์€ ์ ‘์‹œ๋ฅผ ์Œ“๋Š”๊ฒƒ์ฒ˜๋Ÿผ ์ฐจ๊ณก์ฐจ๊ณก ์Œ“๋Š” ๋ฐฉ์‹์˜ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ ‘์‹œ๋ฅผ ์Œ“์•„์˜ฌ๋ฆด ๋•Œ ์ฐจ๊ณก์ฐจ๊ณก ์ ‘์‹œ๋ฅผ ์Œ“๊ณ  ์„ค๊ฑฐ์ง€๋ฅผ ํ•  ๋•Œ ๋งจ ๋ฐ‘์˜ ์ ‘์‹œ๋ถ€ํ„ฐ ๋‹ฆ๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ๋งˆ์ง€๋ง‰์œผ๋กœ ์Œ“์€ ์ ‘์‹œ๋ถ€ํ„ฐ ๋‹ฆ๊ฒŒ ๋œ๋‹ค. ์Šคํƒ์— ์ž๋ฃŒ๋ฅผ ํ•˜๋‚˜ ์ง‘์–ด๋„ฃ๋Š” ๋™์ž‘์„ 'ํ‘ธ์‹œ(push)', ์Šคํƒ ์•ˆ์— ์žˆ๋Š” ์ž๋ฃŒ๋ฅผ ๊บผ๋‚ด๋Š” ๋™์ž‘์„ 'ํŒ(pop)'์ด๋ผ๊ณ  ํ•œ๋‹ค. ํ์™€ ์Šคํƒ์„ ์ด์šฉํ•œ ํšŒ๋ฌธ์ฐพ๊ธฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ def palindrome(s): qu =..