Problem
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ง์ง์ด ์ ๊ฑฐํ๊ธฐ
์ง์ง์ด ์ ๊ฑฐํ๊ธฐ๋, ์ํ๋ฒณ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ ๊ฐ์ง๊ณ ์์ํฉ๋๋ค. ๋จผ์ ๋ฌธ์์ด์์ ๊ฐ์ ์ํ๋ฒณ์ด 2๊ฐ ๋ถ์ด ์๋ ์ง์ ์ฐพ์ต๋๋ค. ๊ทธ๋ค์, ๊ทธ ๋์ ์ ๊ฑฐํ ๋ค, ์๋ค๋ก ๋ฌธ์์ด์ ์ด์ด ๋ถ
programmers.co.kr
Solution
๋น ์คํ์ ๋ง๋ค์ด๋๊ณ
for๋ฌธ์ ์ด์ฉํด ๋ฌธ์ ์์ ๊ธ์๋ฅผ ์ํํ๋ฉด์
์คํ์ด ๋น์ด์๋ค๋ฉด ๊ธ์๋ฅผ ๋ฃ์ด์ฃผ๊ณ
์๋๋ผ๋ฉด ์คํ์ ๋ง์ง๋ง ๊ธ์์ ํ์ฌ ๊ธ์๊ฐ ๊ฐ์์ง ๋น๊ตํ์ฌ
๊ฐ๋ค๋ฉด ์คํ์ ๋ง์ง๋ง์ ์ ๊ฑฐํด์ฃผ๊ณ
์๋๋ผ๋ฉด ์คํ์ ๋ฃ์ด์ค๋ค.
for๋ฌธ์ ๋ค ๋๊ณ ๋์์ ๋ ์คํ์ด ๋น์ด์๋ค๋ฉด 1์ ์๋๋ผ๋ฉด 0์ ๋ฐํํด์ค๋๋ค.
+ ๋ง์ฝ ๋ฌธ์์ ์๊ฐ ํ์๊ฑฐ๋ ์์ ์์ ๊ฒฝ์ฐ๋ ๋ฌด์กฐ๊ฑด ์คํจ์ด๋ฏ๋ก 0์ ๋ฐํํด์ค๋๋ค.
Source Code
func solution(_ s:String) -> Int{ | |
//s์ ๊ธธ์ด๊ฐ ํ์๊ฑฐ๋ ์์ ์๋ ๊ฒฝ์ฐ๋ 0์ ๋ฐํ | |
if s.count%2 == 0 && s.count != 0{ | |
//๊ธ์๋ฅผ ์ ์ฅํ ์คํ | |
var stack = [Character]() | |
//s์ ๊ธ์๋ฅผ ์ดํด๋ด | |
for c in s { | |
//์คํ์ด ๋น์ด์๋ค๋ฉด | |
if stack.isEmpty { | |
//๋ฌธ์๋ฅผ ๋ฃ์ | |
stack.append(c) | |
//์๋๋ผ๋ฉด | |
}else { | |
//์คํ์ ๋ง์ง๋ง๊ณผ ๋ฌธ์๊ฐ ๊ฐ์์ง ๋น๊ตํจ | |
if stack.last! == c{ | |
//๊ฐ๋ค๋ฉด ๋ง์ง๋ง์ ์ ๊ฑฐํด์ค | |
stack.removeLast() | |
}else{ | |
//์๋๋ผ๋ฉด ๋ฌธ์๋ฅผ ๋ฃ์ด์ค | |
stack.append(c) | |
} | |
} | |
} | |
//for๋ฌธ์ด ๋๋๊ณ stack์ด ๋น์ด์๋ค๋ฉด 1 ์๋๋ผ๋ฉด 0 ๋ฐํ | |
return stack.isEmpty ? 1 : 0 | |
}else{ | |
return 0 | |
} | |
} | |
solution("abaabadaad") |
์ฐธ์กฐ
2017 ํ์คํ์ด > ์ง์ง์ด ์ ๊ฑฐํ๊ธฐ
https://programmers.co.kr/learn/courses/30/lessons/12973 ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ง์ง์ด ์ ๊ฑฐํ๊ธฐ | ํ๋ก๊ทธ๋๋จธ์ค ์ง์ง์ด ์ ๊ฑฐํ๊ธฐ๋, ์ํ๋ฒณ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ ๊ฐ์ง๊ณ ์์ํฉ๋๋ค. ๋จผ์ ๋ฌธ์์ด์์ ๊ฐ.
bitwise.tistory.com
\
๋๊ธ