๋ฌธ์ ์ค๋ช
๊ดํธ๊ฐ ๋ฐ๋ฅด๊ฒ ์ง์ง์ด์ก๋ค๋ ๊ฒ์ '(' ๋ฌธ์๋ก ์ด๋ ธ์ผ๋ฉด ๋ฐ๋์ ์ง์ง์ด์ ')' ๋ฌธ์๋ก ๋ซํ์ผ ํ๋ค๋ ๋ป์ ๋๋ค. ์๋ฅผ ๋ค์ด
- "()()" ๋๋ "(())()" ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ ๋๋ค.
- ")()(" ๋๋ "(()(" ๋ ์ฌ๋ฐ๋ฅด์ง ์์ ๊ดํธ์ ๋๋ค.
'(' ๋๋ ')' ๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ก์ ๋, ๋ฌธ์์ด s๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด๋ฉด true๋ฅผ return ํ๊ณ , ์ฌ๋ฐ๋ฅด์ง ์์ ๊ดํธ์ด๋ฉด false๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
์ ํ ์กฐ๊ฑด
- ๋ฌธ์์ด s์ ๊ธธ์ด : 100,000 ์ดํ์ ์์ฐ์
- ๋ฌธ์์ด s๋ '(' ๋๋ ')' ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
s | answer |
"()()" | true |
"(())()" | true |
")()(" | false |
"(()(" | false |
๋ด ๋ฌธ์ ํ์ด
func solution(_ s:String) -> Bool
{
var sum = 0
for i in s {
if i == "(" {
sum += 1
}
else {
sum += -1
}
if sum < 0 {
break
}
}
return sum == 0 ? true : false
}
- (๊ฐ ์ฌ ๋๋ +1์ ํด์ฃผ๊ณ , )๊ฐ ์ฌ ๋๋ -1์ ํด์ฃผ์๋ค.
- 0๋ณด๋ค ์์์ง๋ ์๊ฐ ๋ฐ๋ก for๋ฌธ์ ๋ฒ์ด๋๋๋ก ํ๋ค.
- ๋ฐํํ ๋๋ (์ )์ ๊ฐ์๊ฐ ๊ฐ์ผ๋ฉด 0์ด ๋์ด์ผ ํ๋ฏ๋ก, 0์ด๋ฉด true๋ฅผ ๋ฐํํ๊ฒ ํด์ฃผ์๋ค.
๐ก ํผ๋๋ฐฑ
- return ๋ฌธ์์ ๊ตณ์ด ์ผํญ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ง ์์๋ sum == 0 ๋ง ์์ฑํด๋ Bool ๊ฐ์ ๋ฐํํ ์ ์๋ค.
- ์๋ฉด์๋ ์๊พธ ์ ๋ ๊ฒ ์ฐ๊ฒ ๋๋ค.;
๐ [ ์ถ๊ฐ ] 1์ฃผ์ผ ํ ๋ค์ ํ์ด๋ณด๊ธฐ
func solution(_ s:String) -> Bool {
var sum = 0
for i in s {
if i == "(" { sum += 1 }
else { sum -= 1 }
if sum < 0 { return false }
}
return sum == 0
}
- for๋ฌธ ์์์ sum์ด 0๋ณด๋ค ์์์ง๋ฉด ๊ตณ์ด ํ ๋ฒ๋ ๊ฒ์ฌํ ํ์ ์์ด ๋ฐ๋ก false return ํด์ฃผ์๋ค.
- == ์ฐ์ฐ์๋ก Bool ๊ฐ์ ๋ฐํํด์ฃผ์๋ค.
- ์ฒซ ํ์ด์ ๋ก์ง์ ๊ฐ์ง๋ง ํจ์ฌ ๊น๋ํ๊ฒ ์ ์์ฑํ๋ค.
๋ฌธ์
'3๏ธโฃ Swift > Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift Algorithm] ์ํ๋ฒณ ๊ฐ์ BOJ #10808 (0) | 2021.07.27 |
---|---|
[Swift Algorithm] ๊ฐ์ฅ ํฐ ์ ์ฌ๊ฐํ ์ฐพ๊ธฐ Programmers(Lv.2) (0) | 2021.07.20 |
[Swift Algorithm] ๋ค์ ํฐ ์ซ์ Programmers(Lv.2) (0) | 2021.07.08 |
[Swift Algorithm] ์ต๋๊ฐ๊ณผ ์ต์๊ฐ Programmers(Lv.2) (0) | 2021.07.08 |
[Swift Algorithm] ํผ๋ณด๋์น ์ Programmers(Lv.2) (0) | 2021.07.08 |
๋๊ธ