๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“– Problem Solution/Programmers

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ Swift

by Fomagran ๐Ÿ’ป 2020. 11. 12.
728x90
๋ฐ˜์‘ํ˜•

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

\

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€