๋ฌธ์ ์ค๋ช
์ฌ๋ฌ ๊ฐ์ ์ ๋ง๋๊ธฐ๋ฅผ ๋ ์ด์ ๋ก ์ ๋จํ๋ ค๊ณ ํฉ๋๋ค. ํจ์จ์ ์ธ ์์ ์ ์ํด์ ์ ๋ง๋๊ธฐ๋ฅผ ์๋์์ ์๋ก ๊ฒน์ณ ๋๊ณ , ๋ ์ด์ ๋ฅผ ์์์ ์์ง์ผ๋ก ๋ฐ์ฌํ์ฌ ์ ๋ง๋๊ธฐ๋ค์ ์๋ฆ ๋๋ค. ์ ๋ง๋๊ธฐ์ ๋ ์ด์ ์ ๋ฐฐ์น๋ ๋ค์ ์กฐ๊ฑด์ ๋ง์กฑํฉ๋๋ค.
- ์ ๋ง๋๊ธฐ๋ ์์ ๋ณด๋ค ๊ธด ์ ๋ง๋๊ธฐ ์์๋ง ๋์ผ ์ ์์ต๋๋ค. - ์ ๋ง๋๊ธฐ๋ฅผ ๋ค๋ฅธ ์ ๋ง๋๊ธฐ ์์ ๋๋ ๊ฒฝ์ฐ ์์ ํ ํฌํจ๋๋๋ก ๋๋, ๋์ ์ ๊ฒน์น์ง ์๋๋ก ๋์ต๋๋ค. - ๊ฐ ์ ๋ง๋๊ธฐ๋ฅผ ์๋ฅด๋ ๋ ์ด์ ๋ ์ ์ด๋ ํ๋ ์กด์ฌํฉ๋๋ค. - ๋ ์ด์ ๋ ์ด๋ค ์ ๋ง๋๊ธฐ์ ์ ๋์ ๊ณผ๋ ๊ฒน์น์ง ์์ต๋๋ค.
์๋ ๊ทธ๋ฆผ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์ํ์ผ๋ก ๊ทธ๋ ค์ง ๊ตต์ ์ค์ ์ ์ ๋ง๋๊ธฐ์ด๊ณ , ์ ์ ๋ ์ด์ ์ ์์น, ์์ง์ผ๋ก ๊ทธ๋ ค์ง ์ ์ ํ์ดํ๋ ๋ ์ด์ ์ ๋ฐ์ฌ ๋ฐฉํฅ์ ๋๋ค.
์ด๋ฌํ ๋ ์ด์ ์ ์ ๋ง๋๊ธฐ์ ๋ฐฐ์น๋ ๋ค์๊ณผ ๊ฐ์ด ๊ดํธ๋ฅผ ์ด์ฉํ์ฌ ์ผ์ชฝ๋ถํฐ ์์๋๋ก ํํํ ์ ์์ต๋๋ค.
(a) ๋ ์ด์ ๋ ์ฌ๋ ๊ดํธ์ ๋ซ๋ ๊ดํธ์ ์ธ์ ํ ์ '()'์ผ๋ก ํํํฉ๋๋ค. ๋ํ ๋ชจ๋ '()'๋ ๋ฐ๋์ ๋ ์ด์ ๋ฅผ ํํํฉ๋๋ค. (b) ์ ๋ง๋๊ธฐ์ ์ผ์ชฝ ๋์ ์ฌ๋ ๊ดํธ '('๋ก, ์ค๋ฅธ์ชฝ ๋์ ๋ซํ ๊ดํธ ')'๋ก ํํ๋ฉ๋๋ค.
์ ์์ ๊ดํธ ํํ์ ๊ทธ๋ฆผ ์์ ์ฃผ์ด์ ธ ์์ต๋๋ค.
์ ๋ง๋๊ธฐ๋ ๋ ์ด์ ์ ์ํด ๋ช ๊ฐ์ ์กฐ๊ฐ์ผ๋ก ์๋ฆฌ๋๋ฐ, ์ ์์์ ๊ฐ์ฅ ์์ ์๋ ๋ ๊ฐ์ ์ ๋ง๋๊ธฐ๋ ๊ฐ๊ฐ 3๊ฐ์ 2๊ฐ์ ์กฐ๊ฐ์ผ๋ก ์๋ฆฌ๊ณ , ์ด์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ฃผ์ด์ง ์ ๋ง๋๊ธฐ๋ค์ ์ด 17๊ฐ์ ์กฐ๊ฐ์ผ๋ก ์๋ฆฝ๋๋ค.
์ ๋ง๋๊ธฐ์ ๋ ์ด์ ์ ๋ฐฐ์น๋ฅผ ํํํ ๋ฌธ์์ด arrangement๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์๋ฆฐ ์ ๋ง๋๊ธฐ ์กฐ๊ฐ์ ์ด ๊ฐ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- arrangement์ ๊ธธ์ด๋ ์ต๋ 100,000์ ๋๋ค.
- arrangement์ ์ฌ๋ ๊ดํธ์ ๋ซ๋ ๊ดํธ๋ ํญ์ ์์ ์ด๋ฃน๋๋ค.
์ ์ถ๋ ฅ ์
arrangement | return |
()(((()())(())()))(()) | 17 |
ํ์ด:์ฐ์ arrangement์ ๋ฌธ์๋ค์ map์ผ๋ก ๊ฐ ๊ฐ ๋ฐฐ์ด์ ๋ฃ์ด์ค๋๋ค.(amap)
๊ทธ๋ฆฌ๊ณ for๋ฌธ์ ์ฌ์ฉํด map์ผ๋ก ๋๋ ๊ฒ๋ค์ ์ฐจ๋ก๋ก ํ๋์ฉ ์ง๋๋ฉด์
์ฒซ๋ฒ์งธ if๋ฌธ -> "("์ด ๋ค์ด์์ ๋ bararr์ ๋ ์ด์ ์๋ฅผ ๋ํ๋ด๋ 0์ ๋ฃ์ด์ค๋๋ค. -> ๋ฐ ๋ง๋๊ธฐ ํ๋๊ฐ ์์๋์๋ค๋ ๋ป์ผ๋ก ๊ฐ์ฃผํ๋ค.
๋๋ฒ์งธ if๋ฌธ -> ์ ์ ๋ฌธ์๊ฐ "("๊ณ ๋ฐ๋ก ๊ทธ๋ค์ ๊ฒ์ด ")"๋ผ๋ฉด "()"์ด ๋๋ฏ๋ก ๋ ์ด์ ๋ก ๊ฐ์ฃผํ๊ณ bararr์ ๋ค์ด์๋ ๋ชจ๋ ๋ง๋๊ธฐ์ ๋ ์ด์ ์ ์๋ฅผ ํ๋์ฉ ์ถ๊ฐํด์คฌ๋ค.
์ธ๋ฒ์งธ if๋ฌธ -> ์ ์ ๋ฌธ์๊ฐ ")"๊ณ ๋ฐ๋ก ๊ทธ๋ค์ ๊ฒ์ด ")"๋ผ๋ฉด ๊ฐ์ฅ ์ต๊ทผ์ ๋ง๋๊ธฐ๊ฐ ๋์ด ๋ฌ๋ค๋ ๊ฒ์ผ๋ก ์๊ฐํ๊ณ ๊ทธ ๋ง๋๊ธฐ์ ๋ ์ด์ ์ ์๋ ๊ฐ์ฅ ์ต๊ทผ์ bararr์ ๋ค์ด์๋ ์์ด๊ธฐ ๋๋ฌธ์ bararr์ last์์ ๋ง๋๊ธฐ๋ฅผ ๋ ์ด์ ๋ก ๋๋๋ฉด +1์ด ๋๋ฏ๋ก ๋ ์ด์ ์ + 1์ answer์ ๋ํด์ค๋ค.
๊ทธ๋ฆฌ๊ณค ๋ง์ง๋ง์ bararr.removeLast()๋ฅผ ํญ์ ํด์ฃผ๋ ์ด์ ๋ ์ฒซ ๋ฒ์งธ if๋ฌธ๊ณผ ๋๋ฒ์งธ if๋ฌธ์์ "("ํ๋ฒ์ฉ ๊ฒน์น๊ธฐ ๋๋ฌธ์ด๋ค.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
func solution(_ arrangement:String) -> Int {
var answer = 0
var bararr = [Int]()
if amap[i] == "("{
continue
}
if amap[i-1] == "(" && amap[i] == ")"{
bararr[j] += 1
}
}
if amap[i-1] == ")" && amap[i] == ")"{
}
bararr.removeLast()
}
return answer
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
'๐ Problem Solution > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ํฐ ์ ๋ง๋ค๊ธฐ Swift (0) | 2020.04.04 |
---|---|
2020 KAKAO BLIND RECRUITMENT ๋ฌธ์์ด ์์ถ Swift (0) | 2020.03.28 |
ํ๋ก๊ทธ๋๋จธ์ค ์คํฌํธ๋ฆฌ Swift (0) | 2020.03.25 |
ํ๋ก๊ทธ๋๋จธ์ค ๊ธฐ๋ฅ๊ฐ๋ฐ Swift (0) | 2020.03.23 |
ํ๋ก๊ทธ๋๋จธ์ค ๋ฉ์ฉกํ ์ฌ๊ฐํ Swift (0) | 2020.03.21 |
๋๊ธ