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

[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ง•๊ฒ€๋‹ค๋ฆฌ (with ์‰ฌ์šด ํ’€์ด ํฌํ•จ)

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



 

Problem

 

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ง•๊ฒ€๋‹ค๋ฆฌ

์ถœ๋ฐœ์ง€์ ๋ถ€ํ„ฐ distance๋งŒํผ ๋–จ์–ด์ง„ ๊ณณ์— ๋„์ฐฉ์ง€์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ์‚ฌ์ด์—๋Š” ๋ฐ”์œ„๋“ค์ด ๋†“์—ฌ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”์œ„ ์ค‘ ๋ช‡ ๊ฐœ๋ฅผ ์ œ๊ฑฐํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋„์ฐฉ์ง€์ ์ด 25๋งŒํผ ๋–จ์–ด์ ธ ์žˆ๊ณ , ๋ฐ”์œ„๊ฐ€

programmers.co.kr


Solution

 

ํ•ด๋‹น ๋ฌธ์ œ๋Š” ์ด์ง„ํƒ์ƒ‰์„ ์ด์šฉํ•ด์„œ ํ’€์–ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

 

๋‹ค๋ฆฌ์˜ ๊ธธ์ด n์ด๋ผ๋ฉด ์ตœ์†Œ์˜ ๊ฑฐ๋ฆฌ ์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’์€ ๋ช‡ ์ผ๊นŒ์š”?

 

๋‹ค๋ฆฌ์˜ ์ค‘๊ฐ„์— ๋ฐ”์œ„๊ฐ€ ๋”ฑ ํ•œ ๊ฐœ ์žˆ์„ ๊ฒฝ์šฐ์ธ ๋‹ค๋ฆฌ ๊ธธ์ด์˜ ์ ˆ๋ฐ˜, ์ฆ‰, n/2 ์ž…๋‹ˆ๋‹ค.

 

๊ณ ๋กœ ๋‹ค๋ฆฌ์˜ ๊ธธ์ด์˜ ์ ˆ๋ฐ˜์ด ์ตœ์†Œ๊ฐ’ ์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’์ด๋ผ๊ณ  ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

 

๋ฐ”์œ„๋ฅผ ์‚ญ์ œํ•ด ๋‚˜๊ฐ€๋ฉด์„œ ์ด ๊ฐ’์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€๋ฅผ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

๋ฌธ์ œ์— ๋‚˜์™€์žˆ๋Š” ์˜ˆ์ œ๋กœ ์„ค๋ช…๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๋‹ค๋ฆฌ์˜ ๊ธธ์ด: 25

๋ฐ”์œ„์˜ ์œ„์น˜: 2,14,11,21,17 -> 2, 11, 14, 17, 21

์‚ญ์ œํ•ด์•ผ ํ•  ๋ฐ”์œ„ ๊ฐฏ์ˆ˜: 2

 

์•„๋ž˜์™€ ๊ฐ™์ด ๋ฐ”์œ„๊ฐ€ ์žˆ๊ฒ ์ฃ ?

 

๋‹ค๋ฆฌ์˜ ๊ธธ์ด๊ฐ€ 25์ด๋ฏ€๋กœ ๊ธฐ์ค€๊ฐ’์„ 13(25/2)๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

 

๋งŒ์•ฝ ์ตœ์†Ÿ๊ฐ’ ์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’์ด 13์ด ๋˜๋ ค๋ฉด ๊ทธ๋ณด๋‹ค ๋” ์ ์€ ๊ฑฐ๋ฆฌ๊ฐ€ ์กด์žฌํ•˜๋ฉด ์•ˆ๋˜๊ฒ ์ฃ ?

 

๊ณ ๋กœ ๋” ์ ์€ ๊ฑฐ๋ฆฌ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์‚ญ์ œํ•ด์ค๋‹ˆ๋‹ค.

 

๊ฐ€์žฅ ๋จผ์ € 2๋Š” 1๊ณผ์˜ ์‚ฌ์ด๊ฐ€ 1์ด์ฃ ? 13๋ณด๋‹ค ์ ์œผ๋ฏ€๋กœ ์‚ญ์ œํ•ด์ค๋‹ˆ๋‹ค.

 

2๋ฅผ ์‚ญ์ œํ•ด์คฌ์œผ๋ฏ€๋กœ ํ˜„์žฌ๊นŒ์ง€ ์‚ญ์ œํ•ด์ค€ ๋ฐ”์œ„์˜ ๊ฐฏ์ˆ˜๋Š” 1๊ฐœ ์ž…๋‹ˆ๋‹ค.

 

 

์ด์ œ ๊ทธ ๋‹ค์Œ ๊ฑฐ๋ฆฌ๋Š” 2๋ฅผ ์‚ญ์ œํ•ด์คฌ์œผ๋ฏ€๋กœ 10์ด ๋ฉ๋‹ˆ๋‹ค.

 

13๋ณด๋‹ค ์ ์œผ๋ฏ€๋กœ ์‚ญ์ œํ•ด์ค๋‹ˆ๋‹ค.

 

11์„ ์‚ญ์ œํ•ด์คฌ์œผ๋ฏ€๋กœ ์‚ญ์ œํ•ด์ค€ ๋ฐ”์œ„์˜ ๊ฐฏ์ˆ˜๋Š” 2๊ฐœ ์ž…๋‹ˆ๋‹ค.

 

 

 

๊ทธ ๋‹ค์Œ์€ ๊ฑฐ๋ฆฌ๊ฐ€ 13์ด๋ฏ€๋กœ ํ˜„์žฌ ๊ธฐ์ค€๊ฐ’๋ณด๋‹ค ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— ์‚ญ์ œํ•ด ์ค„ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

 

์‚ญ์ œํ•ด์ฃผ์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ๋‹ค์Œ ๋ฐ”์œ„์™€ ๊ฑฐ๋ฆฌ๋Š” 14๋ถ€ํ„ฐ ์žฌ์ค๋‹ˆ๋‹ค.

 

 

๊ทธ ๋‹ค์Œ์€ 17์ด์ฃ ? 14์™€์˜ ๊ฑฐ๋ฆฌ๊ฐ€ 3์ด๋ฏ€๋กœ 13๋ณด๋‹ค ์ ์œผ๋ฏ€๋กœ ์‚ญ์ œํ•ด์ค๋‹ˆ๋‹ค.

 

์‚ญ์ œํ•ด์ค€ ๋ฐ”์œ„์˜ ๊ฐฏ์ˆ˜๋Š” 3๊ฐœ ์ž…๋‹ˆ๋‹ค.

 

 

๊ทธ ๋‹ค์Œ์€ 21์ž…๋‹ˆ๋‹ค. 14์™€์˜ ๊ฑฐ๋ฆฌ๊ฐ€ 7์ด๋ฏ€๋กœ ์‚ญ์ œํ•ด์ค๋‹ˆ๋‹ค.

 

์‚ญ์ œํ•ด์ค€ ๋ฐ”์œ„์˜ ๊ฐฏ์ˆ˜๋Š” 4๊ฐœ ์ž…๋‹ˆ๋‹ค.

 

๊ฒฐ๊ณผ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฐ”์œ„๊ฐ€ ๋‚จ๊ณ  ์ด ์‚ญ์ œํ•ด์ค€ ๋ฐ”์œ„์˜ ๊ฐฏ์ˆ˜๋Š” 4๊ฐœ ์ž…๋‹ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ ์‚ญ์ œํ•ด์ค˜์•ผ ํ•  ๋ฐ”์œ„์˜ ๊ฐฏ์ˆ˜๋Š” 2๊ฐœ์ฃ ? ์ฆ‰, 13์€ ๋ฐ”์œ„๋ฅผ ์‚ญ์ œํ•ด์„œ ๋งŒ๋“ค ์ˆ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

 

์‚ญ์ œํ•œ ๋ฐ”์œ„๊ฐ€ ์‚ญ์ œํ•ด์ค˜์•ผ ํ•  ๋ฐ”์œ„๋ณด๋‹ค ๋งŽ์œผ๋ฏ€๋กœ ์ตœ์†Ÿ๊ฐ’์„ ๋ ๊ธธ์ด๋ฅผ -1 ํ•ด์ฃผ๊ณ  ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ ์ค๋‹ˆ๋‹ค. (13-1)/2 = 6) 

 

์œ„์™€ ๋˜‘๊ฐ™์ด ์ง„ํ–‰ํ•˜๋ฉด 2,14,21์ด ์‚ญ์ œ๋˜์–ด ์ด 3๊ฐœ์˜ ๋ฐ”์œ„๊ฐ€ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.

 

์•„์ง๋„ ์‚ญ์ œํ•ด์ค€ ๋ฐ”์œ„์˜ ๊ฐฏ์ˆ˜๊ฐ€ ๋” ๋งŽ์ฃ ?

 

 

 

๊ณ ๋กœ ์ตœ์†Ÿ๊ฐ’์„ ๋ ๊ธธ์ด๋ฅผ -1 ํ•ด์ฃผ๊ณ  ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ ์ค๋‹ˆ๋‹ค. (6-1)/2 = 3

 

2๋งŒ ์‚ญ์ œ๋˜๋ฏ€๋กœ ์ด ์‚ญ์ œ๋˜๋Š” ๋ฐ”์œ„์˜ ๊ฐฏ์ˆ˜๋Š” 1์ž…๋‹ˆ๋‹ค.

 

์ด์   ์‚ญ์ œํ•ด์ค˜์•ผ ํ•˜๋Š” ๋ฐ”์œ„๋ณด๋‹ค ์ž‘์ฃ ?

 

์ด๋Ÿด ๋• ์‹œ์ž‘๊ฐ’์„ ์ค‘๊ฐ„๊ฐ’ +1 ํ•ด์ค๋‹ˆ๋‹ค. (4๋กœ ๋ฐ”๊ฟ”์ค๋‹ˆ๋‹ค.)

 

 

์ตœ์†Ÿ๊ฐ’์ด 4์ผ ๋• 2,14๊ฐ€ ์‚ญ์ œ๋˜๋ฏ€๋กœ ์ด ์‚ญ์ œ๋˜๋Š” ๋ฐ”์œ„์˜ ๊ฐฏ์ˆ˜๋Š” 2์ž…๋‹ˆ๋‹ค.

 

์‚ญ์ œํ•ด์ค˜์•ผ ํ•˜๋Š” ๋ฐ”์œ„์™€ ๊ฐ™์œผ๋ฏ€๋กœ ์ ์„ ๋•Œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ค‘๊ฐ„๊ฐ’์— + 1 ํ•ด์ค๋‹ˆ๋‹ค.

์ตœ์†Ÿ๊ฐ’์ด 5์ผ ๋• 2,14,21์ด ๋˜๋ฏ€๋กœ ์ด ์‚ญ์ œ๋˜๋Š” ๋ฐ”์œ„์˜ ๊ฐฏ์ˆ˜๊ฐ€ ๋‹ค์‹œ 3์ด ๋ฉ๋‹ˆ๋‹ค.

 

 

๊ณ ๋กœ, ์ตœ์†Ÿ๊ฐ’ ์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’, ์ฆ‰ ์ •๋‹ต์€ 4๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.


Source Code

 

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€