๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“– Problem Solution/Programmers

[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ฐ€์žฅ ๋จผ ๋…ธ๋“œ (์‰ฌ์šด ํ’€์ด ํฌํ•จ)

by Fomagran ๐Ÿ’ป 2021. 3. 7.
728x90
๋ฐ˜์‘ํ˜•

Problem

 

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ฐ€์žฅ ๋จผ ๋…ธ๋“œ

6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3

programmers.co.kr


Solution

 

ํ•ด๋‹น ๋ฌธ์ œ๋Š” BFS๋กœ ํ’€์–ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

 

1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ 1๊ณผ ์—ฐ๊ฒฐ๋œ ์ˆซ์ž๋“ค ๊ทธ๋ฆฌ๊ณ  ์—ฐ๊ฒฐ๋œ ์ˆซ์ž๋“ค๊ณผ ์—ฐ๊ฒฐ๋œ ์ˆซ์ž๋“ค์„ ๋‚˜์—ดํ•ด์ค๋‹ˆ๋‹ค.

 

๋‚˜์—ดํ•˜๋ฉด ์•„๋ž˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” ํ•œ ๋ผ์ธ์ด ์—ฐ๊ฒฐ๋  ๋•Œ๋งˆ๋‹ค ๋ผ์ธ์˜ ์ˆซ์ž๋ฅผ ๋Š˜๋ ค๊ฐ€์ค๋‹ˆ๋‹ค.

 

์œ„  ๊ทธ๋ฆผ์—์„œ ์™ผ์ชฝ ํŒŒ๋ž€์ƒ‰ ์ˆซ์ž ๋ชจ์–‘์„ ์ฐธ๊ณ  ํ•ด์ฃผ์„ธ์š”.


ํ•˜์ง€๋งŒ ๋ผ์ธ 2๊นŒ์ง€ ์™”์„ ๋•Œ ๋ฌธ์ œ์  ์ด ์ƒ๊ธฐ๋Š”๋ฐ์š”.

 

2์™€ ์—ฐ๊ฒฐ๋œ 1,3,4,5 ์ค‘์—์„œ 1๊ณผ 3์€ ๊ฐˆ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

 

์™œ๋ƒํ•˜๋ฉด ์ด๋ฏธ ์œ„์—์„œ ์—ฐ๊ฒฐ์„ ๋งŒ๋“ค์–ด์ค€ ์ˆซ์ž๋“ค์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ด๋ฏธ ์ง€๋‚˜์˜จ ์ˆซ์ž๋“ค์€ true๋ผ๊ณ  ํ‘œ์‹œ๋ฅผ ํ•ด์ค๋‹ˆ๋‹ค.

 

๊ทธ ๋‹ค์Œ ์—ฐ๊ฒฐ๋  ์ˆซ์ž๋“ค ์ค‘ true๊ฐ’์ด ์žˆ๋Š” ์ˆซ์ž๋“ค์€ ์•„๋ž˜๋ผ์ธ์œผ๋กœ ์—ฐ๊ฒฐํ•˜์ง€ ์•Š์•„๋„ ๋˜๊ฒŒ๋” ํ•˜๋Š” ๊ฒƒ์ด์ฃ !


ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์„œ ์ด๋ ‡๊ฒŒ ์—ฐ๊ฒฐํ•˜๋ฉด ๋˜ ํ•œ๊ฐ€์ง€์˜ ๋ฌธ์ œ์  ์ด ์ƒ๊น๋‹ˆ๋‹ค.

 

2์™€ ์—ฐ๊ฒฐ๋œ ์ˆซ์ž๋“ค์€ 4,5 

 

3๊ณผ  ์—ฐ๊ฒฐ๋œ ์ˆซ์ž๋“ค์€ 4,6

 

4๊ฐ€ ์ค‘๋ณต ์ด ๋˜์ฃ ?

 

๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ฐ ๋ผ์ธ์— ์ €์žฅ๋  ์ˆซ์ž๋“ค์€ ์ค‘๋ณต์„ ์—†์• ์ค€ ๋’ค ์ €์žฅํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ๋ชจ๋‘ ํ•œ ๋’ค ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ๋ผ์ธ์„ ์ฐพ์•„๋‚ด์„œ ์ˆซ์ž๋“ค์ด ๋ช‡ ๊ฐœ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ฉด ์ •๋‹ต์ด ๋ฉ๋‹ˆ๋‹ค!

 


Source Code

 

 



P.S

 

๋งจ ์ฒ˜์Œ์— ๊ฐ ๋ผ์ธ๋ณ„ ์ˆซ์ž๋“ค์„ ์ €์žฅํ•  ๋•Œ ์ด์ฐจ์› ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์„œ ๊ฐ ๋ผ์ธ๋ณ„๋กœ ์ธ๋ฑ์Šค๋ฅผ ๋‹ค๋ฅด๊ฒŒ ํ•ด์„œ 

 

๋„ฃ์–ด ์ €์žฅํ•œ ๋’ค ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์žˆ๋Š” ๋ฐฐ์—ด์˜ ๊ฐฏ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ ค๊ณ  ํ–ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ ํ…Œ์ŠคํŠธ 7๋ฒˆ๊ณผ 9๋ฒˆ์—์„œ 2301ms , 6424ms๋ผ๋Š” ๋ง๋„ ์•ˆ๋˜๋Š” ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ๋‹ค...

 

๊ทธ๋ž˜์„œ ๊ฒฐ๊ตญ ์œ„ ํ’€์ด์ฒ˜๋Ÿผ ๋ฐฐ์—ด ๋Œ€์‹  ๋”•์…”๋„ˆ๋ฆฌ์— ํ‚ค๊ฐ’์œผ๋กœ ์ˆซ์ž๋ฅผ ๋ฐธ๋ฅ˜๊ฐ’์œผ๋กœ ๋ผ์ธ๊ฐ’์„ ๋„ฃ๊ณ  ๊ฐ€์žฅ ํฐ ๋ฐธ๋ฅ˜๊ฐ’์˜ ๊ฐฏ์ˆ˜๋ฅผ ์„ธ์–ด์„œ

 

๋ฐ˜ํ™˜ํ–ˆ๋”๋‹ˆ 2400,6400์ด์—ˆ๋˜ ์‹œ๊ฐ„์ด 40,60์œผ๋กœ ์ค„์–ด๋“ค์—ˆ๋‹ค.

 

๋‹ค์Œ๋ถ€ํ„ฐ BFS ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ ๊ฐ’์„ ๋”•์…”๋„ˆ๋ฆฌ ์•ˆ์— ์ €์žฅํ•ด์•ผ๊ฒ ๋‹ค.

 

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€