Swift | programmers/Lv1.

[Swift] Lv.1 문자열 내 p와 y의 개수

iOSDEv 2024. 2. 20. 11:04
문제

 

 

나의 풀이

 

import Foundation



func solution(_ s:String) -> Bool
{

    return s.lowercased().filter({ $0 == "p" }).count == s.lowercased().filter({ $0 == "y" }).count ? true : false
}

 

다른 사람 풀이

 

import Foundation

func solution(_ s:String) -> Bool
{
    let string = s.lowercased()
    return string.components(separatedBy: "p").count == string.components(separatedBy: "y").count
}
  • components(seperatedBy:)
    • 문자열 나누기 중 배열을 반환한다
    • 반환값은 NSArray로 나누어진 수신자의 하위 문자열을 포함하는 객체

 

 

-를 찾아 잘라주고 -앞에 하나의 배열에 추가시켜준다

 

 

 

import Foundation

func solution(_ s:String) -> Bool
{
    var flag: Int = 0

    for ch in s.uppercased().sorted() {
        switch ch {
        case "P":
            flag += 1
        case "Y":
            flag -= 1
        default:
            break
        }
    }

    return flag == 0
}

 

import Foundation

func solution(_ s:String) -> Bool
{
    var ans:Bool = false
    var pCount = 0
    var yCount = 0
    for char in s.lowercased() {
        if char == "p" {
            pCount += 1
        }
        if char == "y" {
            yCount += 1
        }
    }
    if pCount == yCount {
        ans = true
    }

    return ans
}

 

위 두개는 정석적인 답이라고 생각이 든다

 

import Foundation

func solution(_ s:String) -> Bool
{
    var count = 0
    for char in s {
        if String(char).lowercased() == "p" {
            count += 1
        } else if String(char).lowercased() == "y" {
            count -= 1
        }
    }
    return count == 0 ? true : false
}