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

doyeonjeong_·2022년 8월 3일
0

프로그래머스

목록 보기
18/35

Hits

문제

문자열 내 p와 y의 개수

풀이

import Foundation

func solution(_ s:String) -> Bool {
    var ans = false, countP = 0, countY = 0
    for c in s {
        if c == "p" || c == "P" {
            countP += 1
        } else if c == "y" || c == "Y" {
            countY += 1
        }
    }
    if countP == countY { ans = true }
    return ans
}

🤔 FEEDBACK

  • 처음엔 s.lowercased() 를 사용해서 소문자만 체크했는데 중간에 런타임 에러가 났었다.
  • 공식문서
    를 참고하니 시간복잡도가 O(n)이라서 그랬나보다.

다른 풀이

import Foundation

func solution(_ s:String) -> Bool {
    let string = s.lowercased()
    return string.components(separatedBy: "p").count == string.components(separatedBy: "y").count
}
  • 이건 보자마자 런타임 에러가 날 것 같은데 왜 안났지?! 싶었다.
  • components의 시간복잡도O(n)으로 알고있었는데 아니었나? 싶어서 다시 공식문서를 봤다.
  • 내가 찾은게 맞다면 시간복잡도에 관련한 내용은 없었다... ()이게 아니라 {}이거일 때 시간복잡도 였던 것 같기도 하고..
  • 아직 스위프트 문법에 익숙하지 않다는 증거같다 .. 아무튼 궁금해서 찍어봤는데

  • 이걸로 봐선 어떤게 더 좋은 코드다! 라고 확정할 수 없었다.
  • 메모리든 런타임이든 결과가 들쑥날쑥하기 때문에..! 그래서 결론은 그냥 풀이 방법이 달랐던걸로
profile
블로그 이사중 🚚 byukbyak.tistory.com

0개의 댓글