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

[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์œ„ํด๋ฆฌ ์ฑŒ๋ฆฐ์ง€ 5์ฃผ์ฐจ ๋ชจ์Œ ์‚ฌ์ „

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

Problem

 

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - 5์ฃผ์ฐจ

์‚ฌ์ „์— ์•ŒํŒŒ๋ฒณ ๋ชจ์Œ 'A', 'E', 'I', 'O', 'U'๋งŒ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”, ๊ธธ์ด 5 ์ดํ•˜์˜ ๋ชจ๋“  ๋‹จ์–ด๊ฐ€ ์ˆ˜๋ก๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์ „์—์„œ ์ฒซ ๋ฒˆ์งธ ๋‹จ์–ด๋Š” "A"์ด๊ณ , ๊ทธ๋‹ค์Œ์€ "AA"์ด๋ฉฐ, ๋งˆ์ง€๋ง‰ ๋‹จ์–ด๋Š” "UUUUU"์ž…๋‹ˆ

programmers.co.kr


Solution

 

1. ๋ชจ์Œ ์ˆœ์„œ์™€ ์ธ๋ฑ์Šค๋ณ„ ์นด์šดํŠธ ์–ด๋ ˆ์ด๋ฅผ ๋งŒ๋“ ๋‹ค.

 

์ธ๋ฑ์Šค๋ณ„ ์นด์šดํŠธ๋Š” ๊ฐ€์žฅ ๋ ์ฆ‰,4๋ฒˆ์งธ ์ธ๋ฑ์Šค์ผ ๊ฒฝ์šฐ ๋‹ค์Œ ๋ชจ์Œ์œผ๋กœ ์ด๋™ํ•˜๋Š”๋ฐ 1๊ฐœ์˜ ๋‹จ์–ด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

 

ex) AAAAA -> AAAAE -> AAAAI .... 1๊ฐœ์”ฉ

 

3๋ฒˆ์งธ ์ธ๋ฑ์Šค์˜ ๊ฒฝ์šฐ ๋‹ค์Œ ๋ชจ์Œ์œผ๋กœ ์ด๋™ํ•˜๋Š”๋ฐ 6๊ฐœ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

 

ex) AAAA -> AAAE -> AAAI ... 6๊ฐœ์”ฉ

 

2๋ฒˆ์งธ ์ธ๋ฑ์Šค์˜ ๊ฒฝ์šฐ ๋‹ค์Œ ๋ชจ์Œ์œผ๋กœ ์ด๋™ํ•˜๋Š”๋ฐ 31๊ฐœ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

 

ex) AAA -> AAE -> AAI 31๊ฐœ์”ฉ

 

... ์ด๋Ÿฐ์‹์œผ๋กœ ๊ฐ ํ•„์š”ํ•œ ๋‹จ์–ด์˜ ๊ฐฏ์ˆ˜๋ฅผ ๋ฏธ๋ฆฌ ๊ตฌํ•ด๋†“์Šต๋‹ˆ๋‹ค.

 

 let vowelsDic = ["A":0,"E":1,"I":2,"O":3,"U":4]
 let count = [781,156,31,6,1]

 

2. ๋‹จ์–ด์˜ ์ธ๋ฑ์Šค๋ณ„๋กœ ๋ชจ์Œ์˜ ์ˆœ์„œ์™€ ์ธ๋ฑ์Šค๋ณ„ ์นด์šดํŠธ๋ฅผ ๊ณฑํ•ด์„œ ๋ชจ๋‘ ๋”ํ•ด์ค๋‹ˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ ๋‹ค์Œ ๋ฌธ์ž๋กœ ์ด๋™ํ•  ๋•Œ 1๊ฐœ์”ฉ ๋‹จ์–ด์˜ ์ˆ˜๊ฐ€ ์„ธ์–ด์ง€๋ฏ€๋กœ ๋‹จ์–ด์˜ ๊ฐฏ์ˆ˜๋„ ๋”ํ•ด์ค๋‹ˆ๋‹ค.

 

 return word.enumerated().map{count[$0.offset]*vowelsDic[String($0.element)]!}.reduce(word.count) {$0 + $1}

Source Code

 

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€