๐ ํ์ด์ฌ ์ผ๋ก ํ์ด
๐ ๋ฌธ์ ๋งํฌ :
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๐ ๋ฌธ์ ์ค๋ช :
๋จธ์ฑ์ด๋ ํ์ด๋ ์ง 11๊ฐ์ ๋ ์กฐ์นด๋ฅผ ๋๋ณด๊ณ ์์ต๋๋ค. ์กฐ์นด๋ ์์ง "aya", "ye", "woo", "ma" ๋ค ๊ฐ์ง ๋ฐ์๊ณผ ๋ค ๊ฐ์ง ๋ฐ์์ ์กฐํฉํด์ ๋ง๋ค ์ ์๋ ๋ฐ์๋ฐ์ ํ์ง ๋ชปํ๊ณ ์ฐ์ํด์ ๊ฐ์ ๋ฐ์์ ํ๋ ๊ฒ์ ์ด๋ ค์ํฉ๋๋ค. ๋ฌธ์์ด ๋ฐฐ์ด babbling์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋จธ์ฑ์ด์ ์กฐ์นด๊ฐ ๋ฐ์ํ ์ ์๋ ๋จ์ด์ ๊ฐ์๋ฅผ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
๐ ์ ํ ์ฌํญ
- 1 ≤ babbling์ ๊ธธ์ด ≤ 100
- 1 ≤ babbling[i]์ ๊ธธ์ด ≤ 30
- ๋ฌธ์์ด์ ์ํ๋ฒณ ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
๐ ์ ์ถ๋ ฅ ์

์ถ์ธก)
* ๊ฐ์ ๋ฐ์ ์ฐ๋ฌ์ ๋ชปํจ ****
* babbling ๋ฐฐ์ด์ for๋ฌธ์ผ๋ก ๋๋ฆฌ๊ณ ๊ฐ ์ธ๋ฑ์ค๋ง๋ค ๊ธฐ๋ณธ ๋ฐ์๋ค์ ๋ for๋ฌธ while๋ฌธ์ผ๋ก ๋๋ฆฌ๋ฉด์ ๋ฌธ์์ด์ ์๋ผ๋๊ฐ์ผ ํ ๊น?
- ๋ฌธ์์ด์์ ๊ธฐ๋ณธ ๋ฐ์์ด ์๋์ง ์ผ์น ์ฌ๋ถ๋ฅผ ์ฐพ๊ณ ์ธ๋ฑ์ค ๊ฐ์ด ๋์ค๋ฉด ๊ทธ ์ธ๋ฑ์ค๋ถํฐ ๊ธฐ๋ณธ ๋ฐ์ ๊ฐ์ ๋งํผ ๊น์ง๋ฅผ ์๋ผ๋ด๊ณ , -1์ด ๋ ๋ ๊น์ง ๋ฐ๋ณต. > ๋ฐ์์ด ํ๋๊ฐ ์ฌ๋ฌ๊ฐ ๋์ฌ ์ ์๊ธฐ ๋๋ฌธ์ flag๋ฅผ ์ฌ์ฉํด while๋ฌธ์ผ๋ก ๋๋ ค์ผํจ
* ๊ฐ์ ๋ฐ์ ์ฐ๋ฌ์ ๋์ค๋๊ฑด ์ด๋ป๊ฒ ํด์ผํ๋..? ์ผ์นํ๋ ๊ฒ ๋ํ๋๋ฉด ์ด์ start_idx ๊ฐ์ ํ์ธํ๊ณ ๊ทธ ๋์ ์ธ๋ฑ์ค์์ ์ง๊ธ ๋ฐ์์ ๋ํ ๊ธธ์ด๋งํผ์ ๋บ ๊ฐ์ ๋น๊ตํด ์ผ์นํ๋ฉด ์นด์ดํ ์ํ๊ณ break
- -1์ธ๋ฐ ๋ฌธ์์ด์ด ๋จ์ ์์ผ๋ฉด ๋ฐ์ ๋ถ๊ฐํ ๋ฌธ์์ด๋ฏ๋ก ์นด์ดํ ์์ ์ ์ธ
- -1์ธ๋ฐ ๋ฌธ์์ด์ด ๋น์ด์๋ค๋ฉด ์นด์ดํ +1
- for๋ฌธ ์ข ๋ฃ ํ ์นด์ดํธ ๊ฐ ๋ฐํ
์์ค์ฝ๋)
* 1์ฐจ) ์คํจ : 50์
def solution(babbling):
basic = ["aya", "ye", "woo", "ma"]
cnt = 0
for one in babbling:
i = 0
before_idx = -2
while i < len(basic) :
if len(one) == 0 :
cnt += 1
break
start_idx = one.find(basic[i])
if start_idx != -1 :
before_len = len(one)
one = one.replace(basic[i], "", 1)
if before_len - len(basic[i]) == len(one) and before_idx == start_idx :
break
before_idx = start_idx
else:
i += 1
before_idx = -2
return cnt
* 2์ฐจ) ์ฑ๊ณต : ๋ฌธ์๋ฅผ ์ง์ฐ๋ฉด ๋ถ์ด์ ์๋ก ๊ธฐ๋ณธ ์น์์ด ๋ฐ์์ฒ๋ผ ๋๋ ๊ฒ์ ๋ฐฉ์ง ์ฒ๋ฆฌ
def solution(babbling):
basic = ["aya", "ye", "woo", "ma"]
cnt = 0
for one in babbling:
i = 0
if one.isspace() :
continue
while i < len(basic) :
if basic[i] * 2 in one:
break
if one.isspace() :
cnt += 1
break
start_idx = one.find(basic[i])
if start_idx != -1 :
one = one.replace(basic[i], " ", 1)
else:
i += 1
return cnt
๋ฆฌ๋ทฐ)
์๊ฐ์ง ๋ชปํ ์์๋ฅผ ๋ค์๋ฉด "ayaywooe" ์์ aya ๋ woo๊ฐ ์ง์์ง๊ณ ๋๋ฉด y, e๊ฐ ๋๋ค ๋ฐ์ ๋ชปํ๋ ๊ฑด๋ฐ ye๊ฐ ๋ถ์ด๋ฒ๋ ค ๋ฐ์์ด ๋๋ ๊ฒฝ์ฐ๋ฅผ ์๊ฐ์ง ๋ชปํ๋ค. ์ด ๋ถ๋ถ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ญ์ ํ๊ณ ๋์ ๊ณต๋ฐฑ์ฒ๋ฆฌํ๊ณ ์ ๋ถ ๊ณต๋ฐฑ์ผ๋ ์นด์ดํธ๋ฅผ ํ๋ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝํ๋๋ ํต๊ณผํ๋ค!!!
'Coding Test > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Programmers] ๋๋ง์ ์ํธ (0) | 2023.02.21 |
|---|---|
| Programmers] ์ฝ๋ผ ๋ฌธ์ (0) | 2023.02.13 |
| Programmers] ํ๋ฒ๊ฑฐ ๋ง๋ค๊ธฐ (0) | 2023.02.13 |
| Programmers] ํธ๋ ํ์ดํธ ๋ํ (0) | 2023.02.13 |
| Programmers] ๊ณผ์ผ ์ฅ์ (1) | 2023.02.13 |
