ํ๋ก๊ทธ๋๋จธ์ค [lv1] ์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด ํ์ด์ฌ
2021. 7. 21. 00:04ใ๐ฑ Algorithm
https://programmers.co.kr/learn/courses/30/lessons/81301
โ ์ ๊ทผ
- ๋ฌธ์์ด s ๋ฅผ deque ๋ก ๋ง๋ค์ด, ๋ ์ด์ ์กด์ฌํ์ง ์์ ๋๊น์ง ์ ๊ธ์๋ถํฐ popleft() ํฉ๋๋ค. popleft() ๋ ๊ธ์๋ฅผ i ๋ผ ํฉ๋๋ค.
- i ๊ฐ ์ซ์์ผ ๋์ ๋ฌธ์์ผ ๋๋ฅผ ๊ตฌ๋ถ์ง์ด ๋ถ๊ธฐํฉ๋๋ค. ์ด ๋ ๊ตฌ๋ถ ๋ฐฉ๋ฒ์ isdigit() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
- i ๊ฐ ๋ฌธ์์ผ ๋, ์ด์ ์ i์ ์ด์ด๋ถ์ฌ ํด๋น ๋ฌธ์๊ฐ alphabet ์ key ๊ฐ์ ์กด์ฌํ๋์ง ํ์ธํฉ๋๋ค.
- ์กด์ฌํ ๊ฒฝ์ฐ, ํด๋น key ์ value ๋ก ์นํํ์ฌ ๊ฒฐ๊ณผ ๋ฆฌ์คํธ์ ๋ฃ์ด์ค๋๋ค.
from collections import deque
def solution(s):
alphabet = {
'zero': "0",
'one': '1',
'two': '2',
'three': '3',
'four': '4',
'five': '5',
'six': '6',
'seven': '7',
'eight': '8',
'nine': '9',
}
alphabet = []
s = deque(s)
answer = ''
temp = ''
while s:
i = s.popleft()
if i.isdigit():
answer += i
else:
temp += i
if temp in alphabet:
answer += alphabet[temp]
temp = ''
return int(''.join(answer))
โ ๋ค๋ฅธ ๋ฐฉ๋ฒ - replace() ๋ฉ์๋
replace() ๋ฅผ ์ด์ฉํ, ๊ต์ฅํ pythonic ํ ๋ฐฉ๋ฒ์ ๋๋ค.
๋ฌธ์์ด s ๋ฅผ ๊ธฐ์ค์ผ๋ก for ๋ฌธ์ ๋๋ฆฌ๋ ๊ฒ์ด ์๋, ์ญ์ผ๋ก num_dic ์ items ๋ฅผ ๊ธฐ์ค์ผ๋ก for ๋ฌธ์ ๋๋ฆฝ๋๋ค.
replace() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด, num_dic ์ key ๊ฐ์ด ์กด์ฌํ๋์ง ํ์ธ๊ณผ ์นํ์ด ๋์์ ๊ฐ๋ฅํ๊ธฐ์,
์์ฑํ ์ฝ๋์ ์์ด ์๋นํ ์ค์ด๋ญ๋๋ค.
num_dic = {"zero": "0", "one": "1", "two": "2", "three": "3", "four": "4",
"five": "5", "six": "6", "seven": "7", "eight": "8", "nine": "9"}
def solution(s):
answer = s
for key, value in num_dic.items():
answer = answer.replace(key, value)
return int(answer)
'๐ฑ Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค [lv2] ํ์ผ๋ช ์ ๋ ฌ ํ์ด์ฌ (0) | 2021.07.25 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค [lv1] ์ ๊ท์์ด๋์ถ์ฒ (0) | 2021.07.22 |
ํ๋ก๊ทธ๋๋จธ์ค [lv1] ์์ฃผํ์ง ๋ชปํ ์ ์ ํ์ด์ฌ (0) | 2021.06.30 |
ํ๋ก๊ทธ๋๋จธ์ค [lv3] ๊ฐ์ฅ ๊ธด ํฐ๋ฆฐ๋๋กฌ ํ์ด์ฌ (0) | 2021.05.27 |
ํ๋ก๊ทธ๋๋จธ์ค [lv2] ๋ฐฉ๊ธ ๊ทธ ๊ณก ํ์ด์ฌ (0) | 2021.05.22 |