๋ฐ์ํ
ํ๋ก๊ทธ๋๋จธ์ค LV.1 ๋ชจ์
๋ฌธ์์ด ๋๋๊ธฐ
๋ฌธ์ ์ค๋ช
๋ฌธ์์ด s๊ฐ ์ ๋ ฅ๋์์ ๋ ๋ค์ ๊ท์น์ ๋ฐ๋ผ์ ์ด ๋ฌธ์์ด์ ์ฌ๋ฌ ๋ฌธ์์ด๋ก ๋ถํดํ๋ ค๊ณ ํฉ๋๋ค.
- ๋จผ์ ์ฒซ ๊ธ์๋ฅผ ์ฝ์ต๋๋ค. ์ด ๊ธ์๋ฅผ x๋ผ๊ณ ํฉ์๋ค.
- ์ด์ ์ด ๋ฌธ์์ด์ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ฝ์ด๋๊ฐ๋ฉด์, x์ x๊ฐ ์๋ ๋ค๋ฅธ ๊ธ์๋ค์ด ๋์จ ํ์๋ฅผ ๊ฐ๊ฐ ์ ๋๋ค. ์ฒ์์ผ๋ก ๋ ํ์๊ฐ ๊ฐ์์ง๋ ์๊ฐ ๋ฉ์ถ๊ณ , ์ง๊ธ๊น์ง ์ฝ์ ๋ฌธ์์ด์ ๋ถ๋ฆฌํฉ๋๋ค.
- s์์ ๋ถ๋ฆฌํ ๋ฌธ์์ด์ ๋นผ๊ณ ๋จ์ ๋ถ๋ถ์ ๋ํด์ ์ด ๊ณผ์ ์ ๋ฐ๋ณตํฉ๋๋ค. ๋จ์ ๋ถ๋ถ์ด ์๋ค๋ฉด ์ข ๋ฃํฉ๋๋ค.
- ๋ง์ฝ ๋ ํ์๊ฐ ๋ค๋ฅธ ์ํ์์ ๋ ์ด์ ์ฝ์ ๊ธ์๊ฐ ์๋ค๋ฉด, ์ญ์ ์ง๊ธ๊น์ง ์ฝ์ ๋ฌธ์์ด์ ๋ถ๋ฆฌํ๊ณ , ์ข ๋ฃํฉ๋๋ค.
๋ฌธ์์ด s๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ ๊ณผ์ ๊ณผ ๊ฐ์ด ๋ฌธ์์ด๋ค๋ก ๋ถํดํ๊ณ , ๋ถํดํ ๋ฌธ์์ด์ ๊ฐ์๋ฅผ return ํ๋ ํจ์ solution์ ์์ฑํ์ธ์.
์ ํ ์ฌํญ
- 1 ≤ s์ ๊ธธ์ด ≤ 10,000
- s๋ ์์ด ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
s | result |
"banana" | 3 |
"abracadabra" | 6 |
"aaabbaccccabba" | 3 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- s = "banana"์ธ ๊ฒฝ์ฐ ba - na - na์ ๊ฐ์ด ๋ถํด๋ฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- s = "abracadabra"์ธ ๊ฒฝ์ฐ ab - ra - ca - da - br - a์ ๊ฐ์ด ๋ถํด๋ฉ๋๋ค.
์ ์ถ๋ ฅ ์ #3
- s = "aaabbaccccabba"์ธ ๊ฒฝ์ฐ aaabbacc - ccab - ba์ ๊ฐ์ด ๋ถํด๋ฉ๋๋ค.
์ ์ถ
import Foundation
func solution(_ s:String) -> Int {
var stringValue = s.map{String($0)}
var x = stringValue[0], x_cnt = 0, not_x_cnt = 0
var result = 0
for i in stringValue{
if x_cnt != 0 && x_cnt == not_x_cnt{
result += 1
x_cnt = 0
not_x_cnt = 0
x = i
}
if x == i {x_cnt += 1}
else {not_x_cnt += 1}
}
return result+1
}
์ ๋ ฅ๋ฐ์ ๋ฌธ์์ด s๋ฅผ ๋ฐฐ์ด๋ก ๋ณํํด stringValue์ ์ ์ฅํ๋ค.
๊ธฐ์ค์ด ๋๋ ๋ฌธ์๋ฅผ ๋ด์ ๋ณ์ x์, x์ x๊ฐ ์๋ ๋ค๋ฅธ ๊ธ์์ ๊ฐ์๋ฅผ ์ ์ฅํ ๋ณ์ x_cnt, not_x_cnt๋ฅผ ์์ฑํ๋ค.
stringValue ๋ฐฐ์ด์ ์์๋ฅผ ์์๋๋ก ํ๋์ฉ ํ์ํ๋ค.
x์ ๊ฐ์๊ฐ 0์ด ์๋๊ณ , x์ ๊ฐ์์ x๊ฐ ์๋ ๋ค๋ฅธ ๊ธ์์ ๊ฐ์๊ฐ ๊ฐ์ ๋, result ๋ณ์๋ฅผ 1 ์ฆ๊ฐ์ํจ ํ x_cnt์ not_x_cnt ๋ชจ๋ 0์ผ๋ก ์ด๊ธฐํํ๋ค. ๋ํ ๊ธฐ์ค์ด ๋๋ ๋ฌธ์ x๋ฅผ i๋ก ๋ฐ๊พผ๋ค.
x๊ฐ i์ ๊ฐ์ผ๋ฉด x_cnt๋ฅผ 1 ์ฆ๊ฐ์ํค๊ณ , x์ i๊ฐ ๋ค๋ฅด๋ค๋ฉด not_x_cnt๋ฅผ ์ฆ๊ฐ์ํจ๋ค.
๋ง์ง๋ง ๋ถํดํ ๋ฌธ์์ด์ result ๋ณ์์ ๋ํด์ง์ง ์๊ธฐ ๋๋ฌธ์, result+1์ ๋ฐํํ๋ค.
๋ฐ์ํ
'โจ๏ธ Language > swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] ํ๋ก๊ทธ๋๋จธ์ค LV.1 ํฌ๊ธฐ๊ฐ ์์ ๋ถ๋ถ๋ฌธ์์ด (0) | 2023.03.17 |
---|---|
[Swift] ํ๋ก๊ทธ๋๋จธ์ค LV.1 ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฐ์ ๊ธ์ (0) | 2023.03.16 |
[Swift] ํ๋ก๊ทธ๋๋จธ์ค LV.1 ๋ช ์์ ์ ๋น (1) (0) | 2023.03.15 |
[Swift] ํ๋ก๊ทธ๋๋จธ์ค LV.1 ๊ธฐ์ฌ๋จ์์ ๋ฌด๊ธฐ (0) | 2023.03.15 |
[ํ๋ก๊ทธ๋๋จธ์ค LV.1] ๊ณผ์ผ ์ฅ์ (0) | 2023.03.13 |