Chapter5. ์ฌ๊ท
[๋ฌธ์ 18] ๋ชจ์์ฌ์ - Level2
์ฌ์ ์ ์ํ๋ฒณ ๋ชจ์ 'A', 'E', 'I', 'O', 'U'๋ง์ ์ฌ์ฉํ์ฌ ๋ง๋ค ์ ์๋, ๊ธธ์ด 5 ์ดํ์ ๋ชจ๋ ๋จ์ด๊ฐ ์๋ก๋์ด ์์ต๋๋ค. ์ฌ์ ์์ ์ฒซ ๋ฒ์งธ ๋จ์ด๋ "A"์ด๊ณ , ๊ทธ๋ค์์ "AA"์ด๋ฉฐ, ๋ง์ง๋ง ๋จ์ด๋ "UUUUU"์
๋๋ค.
๋จ์ด ํ๋ word๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ด ๋จ์ด๊ฐ ์ฌ์ ์์ ๋ช ๋ฒ์งธ ๋จ์ด์ธ์ง returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
- word์ ๊ธธ์ด๋ 1 ์ด์ 5 ์ดํ์
๋๋ค.
- word๋ ์ํ๋ฒณ ๋๋ฌธ์ 'A', 'E', 'I', 'O', 'U'๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- 1. ์ฌ๊ท ํจ์๋ฅผ ์ ์
def find(data, p, step):
if step == 6: return
if p ! = '': data.append(p)
for c in ['A', 'E', 'I', 'O', 'U']:
find(data, ''.join([p, c]), step + 1)
- 2. ํจ์๋ฅผ ์คํํ์ฌ ์ฌ์ ๋ง๋ค๊ธฐ
data = []
find(data, '', 0)
- 3. ๋ง๋ค์ด์ง ์ฌ์ ์์ ์ฃผ์ด์ง ๋จ์ด๊ฐ ์ด๋์ ์๋์ง ์ ์ฒด ํ์์ผ๋ก ์ฐพ๊ธฐ
for i in range(len(data)):
if data[i] == word:
answer = i + 1
break
[์ ๋ต1]
def find(data, p, step):
if step == 6: return
if p ! = '': data.append(p)
for c in ['A', 'E', 'I', 'O', 'U']:
find(data, ''.join([p, c]), step + 1)
def solution(word):
answer = 0
data = []
find(data, '', 0)
for i in range(len(data)):
if data[i] == word:
answer = i + 1
break
return answer
[์ ๋ต2_์ง์ ๊ณ์ฐ]
def solution(word):
preset = {
'A' : [1, 1, 1, 1, 1],
'E' : [782, 157, 32, 7, 2],
'I' : [1563, 313, 63, 13, 3],
'O' : [2344, 469, 94, 19, 4],
'U' : [3125, 625, 125, 25, 5]
}
answer = 0
for idx, key in enumerate(word):
answer += preset[key][idx]
return answer
[์ต์ข
์ ๋ต3_๋ฑ๋น์์ด์ ํฉ ์ด์ฉ]
def solution(word):
answer = 0
for i, n in enumerate(word):
answer += (5 ** (5 - i) - 1) / (5 - 1) * "AEIOU".index(n) + 1
return answer