๋ฌธ์ ์ค๋ช
๊ดํธ๊ฐ ๋ฐ๋ฅด๊ฒ ์ง์ง์ด์ก๋ค๋ ๊ฒ์ '(' ๋ฌธ์๋ก ์ด๋ ธ์ผ๋ฉด ๋ฐ๋์ ์ง์ง์ด์ ')' ๋ฌธ์๋ก ๋ซํ์ผ ํ๋ค๋ ๋ป์ ๋๋ค. ์๋ฅผ ๋ค์ด
- ()() ๋๋ (())() ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ ๋๋ค.
- )()( ๋๋ (()( ๋ ์ฌ๋ฐ๋ฅด์ง ์์ ๊ดํธ์ ๋๋ค.
'(' ๋๋ ')' ๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ก์ ๋, ๋ฌธ์์ด s๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด๋ฉด true๋ฅผ return ํ๊ณ , ์ฌ๋ฐ๋ฅด์ง ์์ ๊ดํธ์ด๋ฉด false๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
์ ํ์ฌํญ
- ๋ฌธ์์ด s์ ๊ธธ์ด : 100,000 ์ดํ์ ์์ฐ์
- ๋ฌธ์์ด s๋ '(' ๋๋ ')' ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
s | answer |
()() | true |
(())() | true |
)()( | false |
(()( | false |
ํ์ด: ์ด ๋ฌธ์ ์ ํต์ฌ์ "(" ๋ณด๋ค ")"์ ๊ฐฏ์๊ฐ ๋ ๋ง์์ง๋ ์๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ๊ฐ ๋ ์ ์๋ค.
1. "(" ๊ณผ ")"์ด ์ซ์๋ฅผ ์ count ๋ณ์๋ฅผ ๋ง๋ค์ด์ค๋ค. -> var count = 0
2.for๋ฌธ์ ์ฌ์ฉํ์ฌ s์ ๊ธ์ ์ค์ "("๋ผ๋ฉด count๋ฅผ 1์ฆ๊ฐ์์ผ์ฃผ๊ณ ")"๋ผ๋ฉด 1๊ฐ์์์ผ์ค๋ค. (s๋ "("๊ณผ ")"๋ก ์ด๋ฃจ์ด์ ธ์์ผ๋ฏ๋ก "("์๋๋ผ๋ฉด ์ฆ else๋ฅผ ์ฌ์ฉํด๋ ๋๋ค.) -> for a in s { if a == "(" { count += 1} else{ count -= 1 }
3.count๊ฐ 0๋ณด๋ค ์์์ก๋ค๋ ๊ฒ์ ")"์ ๊ฐฏ์๊ฐ ๋ ๋ง์์ก๋ค๋ ์๋ฏธ์ด๋ฏ๋ก for๋ฌธ์ ์ค๋จ์ํจ๋ค.(break) -> if count < 0 { break }
4.count๊ฐ 0์ด๋ผ๋ฉด true๋ฅผ ์๋๋ผ๋ฉด false๋ก ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๊ฒ ํ๋ค.(count๊ฐ ์์๋ผ๋ฉด์ด๋ผ๊ณ ํ์ง์์ ์ด์ ๋ "(((("์ด๋ฐ์์ผ๋ก ๋๋ค๋ฉด count๊ฐ 0๋ณด๋ค ์ปค์ง๊ณ ์ณ์ง ์์ ๊ดํธ๊ธฐ ๋๋ฌธ์ 0์ด๋ผ๊ณ ๋์๋ค.) -> return count == 0 ? true : false
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
import Foundation
func solution(_ s:String) -> Bool
{
var count = 0
for a in s {
if a == "("{
count += 1
}else{
count -= 1
}
if count < 0 {
break
}
}
return count == 0 ? true : false
}
|
'๐ Problem Solution > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ์ต๋๊ฐ๊ณผ ์ต์๊ฐ (0) | 2020.08.28 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค ๋ ๋ฐ๋จน๊ธฐ Swift (0) | 2020.08.27 |
ํ๋ก๊ทธ๋๋จธ์ค ๋ค์ ํฐ ์ซ์ Swift (0) | 2020.06.21 |
ํ๋ก๊ทธ๋๋จธ์ค ์นดํซ Swift (0) | 2020.05.28 |
ํ๋ก๊ทธ๋๋จธ์ค ์์ฅ Swift (2) | 2020.05.18 |
๋๊ธ