[Python] ๋ฐฑ์ค€ 2309 - ์ผ๊ณฑ๋‚œ์Ÿ์ด
ยท
Algorithm
๋ฌธ์ œ ์™•๋น„๋ฅผ ํ”ผํ•ด ์ผ๊ณฑ ๋‚œ์Ÿ์ด๋“ค๊ณผ ํ•จ๊ป˜ ํ‰ํ™”๋กญ๊ฒŒ ์ƒํ™œํ•˜๊ณ  ์žˆ๋˜ ๋ฐฑ์„ค๊ณต์ฃผ์—๊ฒŒ ์œ„๊ธฐ๊ฐ€ ์ฐพ์•„์™”๋‹ค. ์ผ๊ณผ๋ฅผ ๋งˆ์น˜๊ณ  ๋Œ์•„์˜จ ๋‚œ์Ÿ์ด๊ฐ€ ์ผ๊ณฑ ๋ช…์ด ์•„๋‹Œ ์•„ํ™‰ ๋ช…์ด์—ˆ๋˜ ๊ฒƒ์ด๋‹ค. ์•„ํ™‰ ๋ช…์˜ ๋‚œ์Ÿ์ด๋Š” ๋ชจ๋‘ ์ž์‹ ์ด "๋ฐฑ์„ค ๊ณต์ฃผ์™€ ์ผ๊ณฑ ๋‚œ์Ÿ์ด"์˜ ์ฃผ์ธ๊ณต์ด๋ผ๊ณ  ์ฃผ์žฅํ–ˆ๋‹ค. ๋›ฐ์–ด๋‚œ ์ˆ˜ํ•™์  ์ง๊ด€๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋˜ ๋ฐฑ์„ค๊ณต์ฃผ๋Š”, ๋‹คํ–‰์Šค๋Ÿฝ๊ฒŒ๋„ ์ผ๊ณฑ ๋‚œ์Ÿ์ด์˜ ํ‚ค์˜ ํ•ฉ์ด 100์ด ๋จ์„ ๊ธฐ์–ตํ•ด ๋ƒˆ๋‹ค. ์•„ํ™‰ ๋‚œ์Ÿ์ด์˜ ํ‚ค๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ฐฑ์„ค๊ณต์ฃผ๋ฅผ ๋„์™€ ์ผ๊ณฑ ๋‚œ์Ÿ์ด๋ฅผ ์ฐพ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์•„ํ™‰ ๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ๋‚œ์Ÿ์ด๋“ค์˜ ํ‚ค๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ํ‚ค๋Š” 100์„ ๋„˜์ง€ ์•Š๋Š” ์ž์—ฐ์ˆ˜์ด๋ฉฐ, ์•„ํ™‰ ๋‚œ์Ÿ์ด์˜ ํ‚ค๋Š” ๋ชจ๋‘ ๋‹ค๋ฅด๋ฉฐ, ๊ฐ€๋Šฅํ•œ ์ •๋‹ต์ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€์ธ ๊ฒฝ์šฐ์—๋Š” ์•„๋ฌด๊ฑฐ๋‚˜ ์ถœ๋ ฅํ•œ๋‹ค. ์ถœ๋ ฅ ์ผ๊ณฑ ๋‚œ์Ÿ์ด์˜ ํ‚ค๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค. ์ผ๊ณฑ ๋‚œ์Ÿ์ด๋ฅผ ์ฐพ์„..
[Python] ๋ฐฑ์ค€ 2609 - ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์™€ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜
ยท
Algorithm
๋ฌธ์ œ ๋‘ ๊ฐœ์˜ ์ž์—ฐ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜์™€ ์ตœ์†Œ ๊ณต๋ฐฐ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์—๋Š” ๋‘ ๊ฐœ์˜ ์ž์—ฐ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด ๋‘˜์€ 10,000์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋ฉฐ ์‚ฌ์ด์— ํ•œ ์นธ์˜ ๊ณต๋ฐฑ์ด ์ฃผ์–ด์ง„๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์—๋Š” ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ๋‘ ์ˆ˜์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ, ๋‘˜์งธ ์ค„์—๋Š” ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ๋‘ ์ˆ˜์˜ ์ตœ์†Œ ๊ณต๋ฐฐ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์ •๋‹ต a, b = map(int, input().split()) def gcd(a, b): if b == 0: return a return gcd(b, a % b) print(gcd(a, b), a*b//gcd(a, b)) ์ตœ๋Œ€๊ณต๋ฐฐ์ˆ˜๋Š” ์œ ํด๋ฆฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•ด ๊ตฌํ•œ๋‹ค. ์ตœ์†Œ๊ณต์•ฝ์ˆ˜๋Š” a * b๋ฅผ ์ตœ๋Œ€๊ณต๋ฐฐ์ˆ˜๋กœ ๋‚˜๋ˆˆ ๊ฐ’๊ณผ ๊ฐ™๋‹ค.
[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] ๋ฐฑ์ค€ 14720 - ์šฐ์œ  ์ถ•์ œ
ยท
Algorithm
๋ฌธ์ œ ์˜ํ•™์ด๋Š” ๋”ธ๊ธฐ์šฐ์œ , ์ดˆ์ฝ”์šฐ์œ , ๋ฐ”๋‚˜๋‚˜์šฐ์œ ๋ฅผ ์ข‹์•„ํ•œ๋‹ค. ์ž…๋ง›์ด ๋งค์šฐ ๊นŒ๋‹ค๋กœ์šด ์˜ํ•™์ด๋Š” ์ž์‹ ๋งŒ์˜ ์šฐ์œ ๋ฅผ ๋งˆ์‹œ๋Š” ๊ทœ์น™์ด ์žˆ๋‹ค. ๋งจ ์ฒ˜์Œ์—๋Š” ๋”ธ๊ธฐ์šฐ์œ ๋ฅผ ํ•œ ํŒฉ ๋งˆ์‹ ๋‹ค. ๋”ธ๊ธฐ์šฐ์œ ๋ฅผ ํ•œ ํŒฉ ๋งˆ์‹  ํ›„์—๋Š” ์ดˆ์ฝ”์šฐ์œ ๋ฅผ ํ•œ ํŒฉ ๋งˆ์‹ ๋‹ค. ์ดˆ์ฝ”์šฐ์œ ๋ฅผ ํ•œ ํŒฉ ๋งˆ์‹  ํ›„์—๋Š” ๋ฐ”๋‚˜๋‚˜์šฐ์œ ๋ฅผ ํ•œ ํŒฉ ๋งˆ์‹ ๋‹ค. ๋ฐ”๋‚˜๋‚˜์šฐ์œ ๋ฅผ ํ•œ ํŒฉ ๋งˆ์‹  ํ›„์—๋Š” ๋”ธ๊ธฐ์šฐ์œ ๋ฅผ ํ•œ ํŒฉ ๋งˆ์‹ ๋‹ค. ์˜ํ•™์ด๋Š” ์šฐ์œ  ์ถ•์ œ๊ฐ€ ์—ด๋ฆฌ๊ณ  ์žˆ๋Š” ์šฐ์œ ๊ฑฐ๋ฆฌ์— ์™”๋‹ค. ์šฐ์œ  ๊ฑฐ๋ฆฌ์—๋Š” ์šฐ์œ  ๊ฐ€๊ฒŒ๋“ค์ด ์ผ๋ ฌ๋กœ ๋Š˜์–ด์„œ ์žˆ๋‹ค. ์˜ํ•™์ด๋Š” ์šฐ์œ  ๊ฑฐ๋ฆฌ์˜ ์‹œ์ž‘๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๊ฑธ์œผ๋ฉด์„œ ์šฐ์œ ๋ฅผ ์‚ฌ๋จน๊ณ ์ž ํ•œ๋‹ค. ๊ฐ๊ฐ์˜ ์šฐ์œ  ๊ฐ€๊ฒŒ๋Š” ๋”ธ๊ธฐ, ์ดˆ์ฝ”, ๋ฐ”๋‚˜๋‚˜ ์ค‘ ํ•œ ์ข…๋ฅ˜์˜ ์šฐ์œ ๋งŒ์„ ์ทจ๊ธ‰ํ•œ๋‹ค. ๊ฐ๊ฐ์˜ ์šฐ์œ  ๊ฐ€๊ฒŒ ์•ž์—์„œ, ์˜ํ•™์ด๋Š” ์šฐ์œ ๋ฅผ ์‚ฌ๋งˆ์‹œ๊ฑฐ๋‚˜, ์‚ฌ๋งˆ์‹œ์ง€ ์•Š๋Š”๋‹ค. ์šฐ์œ ๊ฑฐ๋ฆฌ์—๋Š” ์‚ฌ๋žŒ์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ํ•œ ๋ฒˆ ์ง€๋‚˜์นœ ์šฐ์œ ..