๋ฐ์ํ
ํ๋ก๊ทธ๋๋จธ์ค LV.1 ๋ชจ์
์น์์ด
๋ฌธ์ ์ค๋ช
๋จธ์ฑ์ด๋ ํ์ด๋ ์ง 11๊ฐ์ ๋ ์กฐ์นด๋ฅผ ๋๋ณด๊ณ ์์ต๋๋ค. ์กฐ์นด๋ ์์ง "aya", "ye", "woo", "ma" ๋ค ๊ฐ์ง ๋ฐ์๊ณผ ๋ค ๊ฐ์ง ๋ฐ์์ ์กฐํฉํด์ ๋ง๋ค ์ ์๋ ๋ฐ์๋ฐ์ ํ์ง ๋ชปํ๊ณ ์ฐ์ํด์ ๊ฐ์ ๋ฐ์์ ํ๋ ๊ฒ์ ์ด๋ ค์ํฉ๋๋ค. ๋ฌธ์์ด ๋ฐฐ์ด babbling์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋จธ์ฑ์ด์ ์กฐ์นด๊ฐ ๋ฐ์ํ ์ ์๋ ๋จ์ด์ ๊ฐ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
์ ํ ์ฌํญ
- 1 ≤ babbling์ ๊ธธ์ด ≤ 100
- 1 ≤ babbling [i]์ ๊ธธ์ด ≤ 30
- ๋ฌธ์์ด์ ์ํ๋ฒณ ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
babbling | result |
["aya", "yee", "u", "maa"] | 1 |
["ayaye", "uuu", "yeye", "yemawoo", "ayaayaa"] | 2 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- ["aya", "yee", "u", "maa"]์์ ๋ฐ์ํ ์ ์๋ ๊ฒ์ "aya"๋ฟ์ ๋๋ค. ๋ฐ๋ผ์ 1์ return ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- ["ayaye", "uuuma", "yeye", "yemawoo", "ayaayaa"]์์ ๋ฐ์ํ ์ ์๋ ๊ฒ์ "aya" + "ye" = "ayaye", "ye" + "ma" + "woo" = "yemawoo"๋ก 2๊ฐ์ ๋๋ค. "yeye"๋ ๊ฐ์ ๋ฐ์์ด ์ฐ์๋๋ฏ๋ก ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ 2๋ฅผ return ํฉ๋๋ค.
์ ์์ฌํญ
- ๋ค ๊ฐ์ง๋ฅผ ๋ถ์ฌ ๋ง๋ค ์ ์๋ ๋ฐ์ ์ด์ธ์๋ ์ด๋ค ๋ฐ์๋ ํ ์ ์๋ ๊ฒ์ผ๋ก ๊ท์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด "woowo"๋ "woo"๋ ๋ฐ์ํ ์ ์์ง๋ง "wo"๋ฅผ ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ์ ํ ์ ์๋ ๋ฐ์์ ๋๋ค.
์ ์ถ
import Foundation
func solution(_ babbling:[String]) -> Int {
var baby = ["aya", "ye", "woo", "ma"]
var answer = 0
for b in babbling{
var temp = b
var cnt = 0
for i in baby{
if temp.contains(i){
temp = temp.replacingOccurrences(of: i, with: " ")
if temp.contains(" ") {break}
cnt += (temp.filter{$0 == " "}.count * i.count)
temp = b
}
}
if cnt == b.count {answer += 1}
}
return answer
}
ํ ์ ์๋ ๋ฐ์ 4๊ฐ๋ฅผ ๋ด์ ๋ฐฐ์ด baby์, ์ต์ข ๊ฒฐ๊ด๊ฐ์ ๋ด์ ๋ณ์ answer๋ฅผ ์ ์ธํ๋ค.
์ ๋ ฅ๋ฐ์ ๋ฐฐ์ด babbling์ ์์๋ค์ ํ๋์ฉ ํ์ธํ๋ค.
๋ฐฐ์ด์ ์์๋ฅผ ๋ด์ ๋ณ์ temp์ cnt๋ฅผ ์ ์ธํ๋ค.
temp์ baby์ ์์๊ฐ ์๋ค๋ฉด, ๊ทธ ์์๊ฐ ์๋ ๋ถ๋ถ์ ๊ณต๋ฐฑ์ผ๋ก ๋ณ๊ฒฝํ๋ค.
๋ง์ฝ 2๊ฐ์ ๊ณต๋ฐฑ์ด ์ฐ์๋๋ค๋ฉด, ๋ฐ๋ณต๋ฌธ์ ์ข ๋ฃ์ํจ๋ค.
cnt ๋ณ์์ (๊ณต๋ฐฑ์ ๊ฐ์*์์์ ๊ธ์์) ๋งํผ ๋ํ๋ค.
๋ง์ฝ cnt ๋ณ์์ ๊ฐ์ด babbling์ ์์์ ํฌ๊ธฐ์ ๊ฐ๋ค๋ฉด, answer ๋ณ์๋ฅผ 1 ์ฆ๊ฐ์ํจ๋ค.
(ex- ayaye ์ธ๊ฒฝ์ฐ cnt ๋ณ์๋ 3+2 = 5๋ฅผ ๊ฐ๋๋ค. ayaye์ ๊ธธ์ด๋ 5์ด๊ธฐ ๋๋ฌธ์ ๋์ด ์ผ์นํ๋ฉด 1 ์ฆ๊ฐํ๋ค.)
๋ค๋ฅธ ํ์ด
func solution(_ babbling:[String]) -> Int {
var count: Int = 0
for element in babbling {
var str = String(element)
str = str.replacingOccurrences(of: "aya", with: "1")
str = str.replacingOccurrences(of: "ye", with: "2")
str = str.replacingOccurrences(of: "woo", with: "3")
str = str.replacingOccurrences(of: "ma", with: "4")
if Int(str) != nil && !str.contains("11") && !str.contains("22") && !str.contains("33") && !str.contains("44"){
count += 1
}
}
return count
}
๋ฐฐ์ด babbling์ ์์๋ฅผ ํ๋์ฉ ํ์ธํ๋ค.
๋ฐฐ์ด์ ์์๋ฅผ str ๋ณ์์ ์ ์ฅํ๋ค.
str ๋ณ์์์ ๋ฐ์ํ ์ ์๋ 4๊ฐ์ ๋ฐ์์ ๊ฐ๊ณ ์๋ค๋ฉด ์์๋๋ก 1,2,3,4๋ก ๋ณํํ๋ค.
str ๋ณ์๋ฅผ Int๋ก ๋ณํํ์์ ๋ nil์ด ์๋๊ณ (๋ชจ๋ ๋ฐ์ํ ์ ์๋ ๋ฐ์์ผ๋ก ๊ตฌ์ฑ), ์ฐ์์ผ๋ก ๊ฐ์ ๋ฐ์์ด ๋์ค์ง ์๋ ๊ฒฝ์ฐ์๋ง count ๋ณ์๋ฅผ 1 ์ฆ๊ฐ์ํจ๋ค.
๋ฐ์ํ
'โจ๏ธ Language > swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค LV.1] ํธ๋ ํ์ดํธ ๋ํ (0) | 2023.03.12 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค LV.1] ํ๋ฒ๊ฑฐ ๋ง๋ค๊ธฐ (1) | 2023.03.12 |
[ํ๋ก๊ทธ๋๋จธ์ค LV.1] ์ฝ๋ผ ๋ฌธ์ (0) | 2023.03.09 |
[ํ๋ก๊ทธ๋๋จธ์ค LV.1] ์ผ์ด์ฌ (0) | 2023.03.09 |
[ํ๋ก๊ทธ๋๋จธ์ค LV.1] ์ซ์ ์ง๊ฟ (0) | 2023.03.08 |