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

[Swift] 2021 KAKO BLIND RECUITMENT ํ•ฉ์Šน ํƒ์‹œ ์š”๊ธˆ

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

 

 

Problem

 

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ํ•ฉ์Šน ํƒ์‹œ ์š”๊ธˆ

6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4

programmers.co.kr


Solution

ํ•ด๋‹น ๋ฌธ์ œ๋Š” Floyd Warshall ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ’€์–ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

 

1. ๋ชจ๋“  ์ง€์  ์—ฐ๊ฒฐํ•˜๊ธฐ

 

์šฐ์„  ๋ชจ๋“  ์ง€์ ์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์„ ์ •์ˆ˜์—์„œ ๊ฐ€์žฅ ํฐ ๊ฐ’์œผ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.

 

๊ทธ ๋‹ค์Œ ์ง€์  ์ค‘ ์ž๊ธฐ ์ž์‹ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜๋Š” ๊ฒฝ์šฐ 1์—์„œ 1 2์—์„œ 2 3์—์„œ 3... ๋“ฑ์€ 0์œผ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.

 

๊ทธ๋ฆฌ๊ณค ์ฃผ์–ด์ง„ fares์•ˆ์— ์žˆ๋Š” ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ๊ฐ’์„ ์„ธํŒ…ํ•ด์ค€๋‹ค.

 

2. ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‚ฌ์šฉํ•˜๊ธฐ

 

n๊ฐœ์˜ ์ง€์ ์ด ์žˆ๋‹ค๋ฉด ์ถœ๋ฐœํ•  ์ง€์ ๊ณผ ์ค‘๊ฐ„์— ๋“ค๋ฆฌ๋Š” ์ง€์  ๋„์ฐฉํ•˜๋Š” ์ง€์  ์ด๋ ‡๊ฒŒ 3๊ฐœ๋ฅผ for๋ฌธ์œผ๋กœ ๊ฐ๊ฐ ์‹คํ–‰์‹œ์ผœ์ค€๋‹ค.

 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ค‘๊ฐ„์— ๊ฑฐ์ณ๊ฐ€๋Š” ๋ชจ๋“  ์ง€์ ์— ๋Œ€ํ•œ ๊ฐ’์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•  ์ ์€ ํšจ์œจ์„ฑ์„ ์ตœ๋Œ€ํ™” ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ถœ๋ฐœ๊ณผ ์ค‘๊ฐ„์— ๋“ค๋ฆฌ๋Š” ์ง€์ ์ด ๊ฐ™๋‹ค๊ฑฐ๋‚˜ ์ถœ๋ฐœ๊ณผ ์ค‘๊ฐ„์ด ์ •์ˆ˜์˜ ๊ฐ€์žฅ ํฐ ๊ฐ’์ด๋ฉด

 

๋„์ฐฉ์ง€์ ๊นŒ์ง€ ์•ˆ๊ฐ€๋„ ๋˜๋ฏ€๋กœ ํŒจ์Šคํ•ด์ค€๋‹ค.

 

3.๊ฐ€์žฅ ์ž‘์€ ๊ฐ’ ์ฐพ๊ธฐ

 

์ถœ๋ฐœ์ง€์ ์—์„œ ์–ด๋Š ์ง€์ ์„ ๊ฑฐ์ณ์•ผ a์™€ b์— ๋„์ฐฉํ•˜๋Š” ๊ฐ’์ด ๊ฐ€์žฅ ์ž‘์€์ง€ ์•Œ์•„๋‚ธ๋‹ค.

 

(๊ฑฐ์ณ์•ผ ํ•˜๋Š” ์ง€์  ์ค‘ ์ถœ๋ฐœ์ง€์ ,a,b๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ค‘๊ฐ„์ง€์ ์„ ์•ˆ๊ฑฐ์น˜๋Š” ๊ฒฝ์šฐ๋„ ํฌํ•จ๋˜์–ด์žˆ๋‹ค.)


Source Code

 


P.S

 

์ฒ˜์Œ์—” ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ’€์ด๋ฅผ ํ–ˆ๋Š”๋ฐ ์ •ํ™•์„ฑ์€ ๋ชจ๋‘ ๋งž์•˜์ง€๋งŒ ํšจ์œจ์„ฑ์—์„œ ๋ชจ๋‘ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋–ด๋‹ค.

 

๊ทธ๋ž˜์„œ ์งˆ๋ฌธํ•˜๊ธฐ๋ฅผ ๋ด๋ดค๋Š”๋ฐ ์ตœ์•…์˜ ๋‹ค์ต์ŠคํŠธ๋ผ๋Š” O( N * ElogN ), ํ”Œ๋กœ์ด๋“œ๋Š” O( N3 )์˜ ์‹œ๊ฐ„์ด ์†Œ์š”๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์“ฐ์—ฌ์žˆ์—ˆ๋‹ค.

 

์–ธ์–ด์— ๋”ฐ๋ผ์„œ ํ†ต๊ณผ๋˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒฝ์šฐ ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ’€๊ฑฐ๋‚˜ ๋‹ค์ต์ŠคํŠธ๋ผ๋กœ ์ตœ์„ ์˜ ๊ฒฝ์šฐ๋ฅผ ๋งŒ๋“ค์–ด์„œ

 

ํ‘ธ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์—ˆ๋Š”๋ฐ ๊ทธ๋ƒฅ ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ๋กœ ๊ฐˆ์•„ํƒ”๋‹ค.

 

ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ์ด ํ›จ์”ฌ ๊ฐ„๋‹จํ•˜๊ณ  ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

(๋‹ค์ต์ŠคํŠธ๋ผ๋ฅผ ๊ณ„์† ํšจ์œจ์ ์œผ๋กœ ํ’€์–ด๋ณด๋ ค๊ณ  ํ•˜๋‹ˆ๊น...์ ์  ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๋น„์Šทํ•ด์ง€๋Š” ๋Š๋‚Œ์€....๋ญ์ง€..)

 

 

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€