๋ฌธ์ ์ค๋ช
๋๋ฌธ์์ ์๋ฌธ์๊ฐ ์์ฌ์๋ ๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ง๋๋ค. s์ 'p'์ ๊ฐ์์ 'y'์ ๊ฐ์๋ฅผ ๋น๊ตํด ๊ฐ์ผ๋ฉด True, ๋ค๋ฅด๋ฉด False๋ฅผ return ํ๋ solution๋ฅผ ์์ฑํ์ธ์. 'p', 'y' ๋ชจ๋ ํ๋๋ ์๋ ๊ฒฝ์ฐ๋ ํญ์ True๋ฅผ ๋ฆฌํดํฉ๋๋ค. ๋จ, ๊ฐ์๋ฅผ ๋น๊ตํ ๋ ๋๋ฌธ์์ ์๋ฌธ์๋ ๊ตฌ๋ณํ์ง ์์ต๋๋ค.
์๋ฅผ ๋ค์ด s๊ฐ "pPoooyY"๋ฉด true๋ฅผ returnํ๊ณ "Pyy"๋ผ๋ฉด false๋ฅผ returnํฉ๋๋ค.
์ ํ ์กฐ๊ฑด
- ๋ฌธ์์ด s์ ๊ธธ์ด : 50 ์ดํ์ ์์ฐ์
- ๋ฌธ์์ด s๋ ์ํ๋ฒณ์ผ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
s | answer |
"pPoooyY" | true |
"Pyy" | false |
๋ด ๋ฌธ์ ํ์ด
func solution(_ s:String) -> Bool
{
var countP = 0
var countY = 0
for i in s.lowercased() {
if i == "p" {
countP += 1
}
else if i == "y" {
countY += 1
}
}
return countP == countY
}
- ๋จผ์ ์ฃผ์ด์ง ๋ฌธ์์ด s๋ฅผ ๋ชจ๋ ์๋ฌธ์๋ก ๋ณ๊ฒฝํด์ฃผ๊ณ , p๋ y๊ฐ ์กด์ฌํ๋์ง ๋ฐ๋ณต๋ฌธ์ผ๋ก ํ์ธํ๋ค.
- return ๋ฌธ์์๋ ==๋ฅผ ์ฌ์ฉํด ๋ฐ๋ก Bool ๊ฐ์ผ๋ก ๋ฆฌํด๋๋๋ก ํด์ฃผ์๋ค.
์ธ์์ ์ธ ํ์ด
import Foundation
func solution(_ s:String) -> Bool {
let string = s.lowercased()
return string.components(separatedBy: "p").count == string.components(separatedBy: "y").count
}
- components๋ฅผ ์ฌ์ฉํ์ฌ p๋ฅผ ๊ธฐ์ค์ผ๋ก ๋๋ ๋ฐฐ์ด์ ์์ ๊ฐ์, y๋ฅผ ๊ธฐ์ค์ผ๋ก ๋๋ ๋ฐฐ์ด์ ์์ ๊ฐ์๋ฅผ ๋น๊ตํ๋ค.
์ธ์์ ์ธ ํ์ด ํ๋ ๋,!
import Foundation
func solution(_ s:String) -> Bool {
return s.lowercased().filter { $0 == "p" }.count == s.lowercased().filter { $0 == "y" }.count
}
- ๋ชจ๋ ์๋ฌธ์๋ก ๋ณ๊ฒฝ ํ, filter ์ฌ์ฉํ์ฌ p์ y์ ๊ฐ์ ํ์ธํ๊ณ ๋น๊ตํด์ฃผ์๋ค.
๐ก ํผ๋๋ฐฑ
- ๋๋ ๋๋ฆ ์ ํ์๋ค๊ณ ์๊ฐํ๋๋ฐ, ๊ฐ์ ๋ก์ง์ธ๋ฐ๋ filter๋ฅผ ์ฌ์ฉํ๋ ํจ์ฌ ๊ฐ๊ฒฐํด์ก๋ค,,!
- components๋ฅผ ์ด๋ฐ ๋ฌธ์ ์๋ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ด ์ ๊ธฐํ๋ค. ํจ์ ์ฌ์ฉ์ ์ ๋ต์ ์๋ค,, ๋ค์ํ๊ฒ ํจ์๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ์ฐ์ต ๋ง์ด ํด์ผ๊ฒ ๋ค.
๐ [ ์ถ๊ฐ ] 1์ฃผ์ผ ํ ๋ค์ ํ์ด๋ณด๊ธฐ
func solution(_ s:String) -> Bool
{
var pCount = 0
var yCount = 0
for i in s {
if Array("pP").contains(i) {
pCount += 1
}
else if Array("yY").contains(i) {
yCount += 1
}
}
return pCount == yCount
}
- if ๋ฌธ์์ ๋ฐ๋ก ๋ฐฐ์ด pP, yY๋ฅผ ๋ง๋ค๊ณ , contains๋ฅผ ์ฌ์ฉํด ๋ฌธ์์ด์ ๊ฒ์ฌํ๋ค.
- ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ ์๋๋ฏ ํ๋ค.ใ ์์ ์ฝ๋๋ค ๋ณด๋ฉด์ ๋ณต์ต ๋ง์ด ํด์ผ๊ฒ ๋ค.
๋ฌธ์
๋๊ธ