ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Swift] 문자열 내 p와 y의 개수
    카테고리 없음 2023. 10. 19. 01:09

    문제 설명

    대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.

    예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다.

    제한사항
    • 문자열 s의 길이 : 50 이하의 자연수
    • 문자열 s는 알파벳으로만 이루어져 있습니다.

     

    import Foundation
    
    func solution(_ s:String) -> Bool
    {
        var ans:Bool = false
        
        var countP: Int = 0
        var countY: Int = 0
    
        let lowercasedStr = s.lowercased()
        
        for i in lowercasedStr {
            if i == "p" {
                countP += 1 
            } else if i == "y" {
                countY += 1
            }
        }
        
       if countP == countY {
           ans = true
       } else {
           ans = false
       }
        return ans
    }

    - 문자열.lowercased()

    - 문자열 한글자씩 출력

    반복문 ->

    for i in String {

                    }

     

     

    문자열.components

    -> import Foundation 필요

     

    import Foundation
    var str = "안녕하세요 split과 components에 대해 알아보아요"
    str.components(separatedBy: " ")
    // Result ["안녕하세요", "split과", "components에", "대해", "알아보아요"]

    components, split 반환형이 다름

    type(of: str.components(separatedBy: " "))
    // Result Array<String>
    type(of: str.split(separator: " "))
    // Result Array<Substring>

     

    [추가 풀이]

    import Foundation
    
    func solution(_ s:String) -> Bool
    {
        return s.lowercased().filter { $0 == "p" }.count == s.lowercased().filter { $0 == "y" }.count
    }

     

     

     

     

     

     

    참고:https://velog.io/@folw159/Swift-components%EC%99%80-split%EC%9D%98-%EC%B0%A8%EC%9D%B4

     

    [Swift5] components와 split의 차이

    문자열을 쪼개기 위해 방법을 찾는 중 components와 split 두가지의 방법이 있다는 것을 알게되었어요.두 개의 메서드 모두 문자열을 쪼개주는 역할을 하지만 뭐가 다르기에 같은 역할을 하는 메서

    velog.io

     

Designed by Tistory.