์ฝ๋ฉ ํ ์คํธ ์ฐ์ต - 2017 ํ์คํ์ด
<์ง์ง์ด ์ ๊ฑฐํ๊ธฐ>
๋ฌธ์ ์ค๋ช
์ง์ง์ด ์ ๊ฑฐํ๊ธฐ๋, ์ํ๋ฒณ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ ๊ฐ์ง๊ณ ์์ํฉ๋๋ค. ๋จผ์ ๋ฌธ์์ด์์ ๊ฐ์ ์ํ๋ฒณ์ด 2๊ฐ ๋ถ์ด ์๋ ์ง์ ์ฐพ์ต๋๋ค. ๊ทธ๋ค์, ๊ทธ ๋์ ์ ๊ฑฐํ ๋ค, ์๋ค๋ก ๋ฌธ์์ด์ ์ด์ด ๋ถ์ ๋๋ค. ์ด ๊ณผ์ ์ ๋ฐ๋ณตํด์ ๋ฌธ์์ด์ ๋ชจ๋ ์ ๊ฑฐํ๋ค๋ฉด ์ง์ง์ด ์ ๊ฑฐํ๊ธฐ๊ฐ ์ข ๋ฃ๋ฉ๋๋ค. ๋ฌธ์์ด S๊ฐ ์ฃผ์ด์ก์ ๋, ์ง์ง์ด ์ ๊ฑฐํ๊ธฐ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์ํํ ์ ์๋์ง ๋ฐํํ๋ ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. ์ฑ๊ณต์ ์ผ๋ก ์ํํ ์ ์์ผ๋ฉด 1์, ์๋ ๊ฒฝ์ฐ 0์ ๋ฆฌํดํด์ฃผ๋ฉด ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด, ๋ฌธ์์ด S = baabaa ๋ผ๋ฉด
b aa baa → bb aa → aa →
์ ์์๋ก ๋ฌธ์์ด์ ๋ชจ๋ ์ ๊ฑฐํ ์ ์์ผ๋ฏ๋ก 1์ ๋ฐํํฉ๋๋ค.
์ ํ ์ฌํญ
- ๋ฌธ์์ด์ ๊ธธ์ด : 1,000,000 ์ดํ์ ์์ฐ์
- ๋ฌธ์์ด์ ๋ชจ๋ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
๋ฌธ์ ํ์ด
- my solution
def solution(s):
answer = 1
temp=[]
temp.append(s[0]) #์ฒซ๋ฒ์งธ ๊ฐ ์ถ๊ฐ
for i in range(1,len(s)):
if(len(temp)==0): #๊ธธ์ด๊ฐ 0์ด๋ฉด ๊ทธ๋ฅ ์ถ๊ฐ
temp.append(s[i])
elif(temp[-1]==s[i]): #๊ฐ์ ๊ฐ์ด๋ฉด pop
temp.pop()
else: #๊ฐ์ ๊ฐ์ด ์๋๋ฉด ์ถ๊ฐ
temp.append(s[i])
if(len(temp)!=0): #๊ธธ์ด๊ฐ 0์ด ์๋๋ฉด ์ง์ง์ด ์ ๊ฑฐํ๊ธฐ ์ฑ๊ณต x
answer=0
return answer
์ฒ์์๋ while๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ 0์ด ์๋ ๋๊น์ง ๋ฐ๋ณตํ๋ ๋ฐฉ์์ผ๋ก ์ฝ๋๋ฅผ ๊ตฌํํ์๋ค.
ํ์ง๋ง ์ด ๋ฐฉ๋ฒ์ผ๋ก๋ ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ์๋ค. pop ๋๋ฌธ์ธ๊ฐ ํด์ pop์ด ์๋ ์ธ๋ฑ์ค๋ก ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์
๊ตฌํํ์ง๋ง ๋ง์ฐฌ๊ฐ์ง๋ก ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ์๋ค. ๋ค๋ฅธ ์ฌ๋์ ๋ฌธ์ ํ์ด๋ฅผ ์ฐพ์๋ณธ ๊ฒฐ๊ณผ stack์ ์ด์ฉํ๋ฉด
๋๋ค๋ ํํธ๋ฅผ ์ป์๋ค.
1) ์ฒซ ๋ฒ์งธ ๊ฐ์ list์ ์ถ๊ฐ
2) ๋ฌธ์์ด ๋๊น์ง ๋ฐ๋ณต
2-1) list ๊ธธ์ด๊ฐ 0์ด๋ฉด ๊ทธ๋ฅ ๋ฌธ์ ์ถ๊ฐ
2-2) list์ ์๋ ๊ฐ๊ณผ list์ ๋ฃ์ ๊ฐ์ด ๊ฐ์ผ๋ฉด list ๊ฐ pop
2-3) ๊ฐ์ ๊ฐ์ด ์๋๋ฉด ๋ฌธ์ ์ถ๊ฐ
3) list ๊ธธ์ด๊ฐ 0์ด ์๋๋ฉด ์ง์ง์ด ์ ๊ฑฐํ๊ธฐ ์ฑ๊ณต x ์ด๋ฏ๋ก answer=0
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉ ํ ์คํธ ์ฐ์ต, https://programmers.co.kr/learn/challenges
'๐Algorithm > ๐ฅprogrammers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[programmers] [1์ฐจ] ์บ์ - 2018 KAKAO BLIND RECRUITMENT (0) | 2021.01.19 |
---|---|
[programmers] ์์ด ๋๋ง์๊ธฐ - Summer/Winter Coding(~2018) (0) | 2021.01.12 |
[programmers] ์ด์ง ๋ณํ ๋ฐ๋ณตํ๊ธฐ - ์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ1 (0) | 2021.01.11 |
[programmers] ์์ฐ - Summer/Winter Coding(~2018) (0) | 2021.01.11 |
[programmers] ๋ด์ - ์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ1 (0) | 2021.01.11 |