[Programmers] [Lv.1] [Swift] 문자열 다루기 기본

doyeonjeong_·2022년 8월 1일
0

프로그래머스

목록 보기
16/35
post-custom-banner

Hits

문제

문자열 다루기 기본

문제파악하기

  • 문자열을 숫자로 변환해서 문자열인지 확인만 하면 되는 문제!
  • 인 줄 알았으나 이제 문자열의 특정 길이를 곁들인...

풀이

func solution(_ s:String) -> Bool {
    if (s.count != 4) && (s.count != 6) { return false }
    return s.allSatisfy({ $0.isNumber })
}

🤔 FEEDBACK

📌 배운 것

  • 문자열.allSatisfy({ $0.isNumber }) 문자열이 숫자인지 한번에 확인하는 방법 - O(n)
  • if 조건문 ? 맞으면여기 : 틀리면여기 3항 연산자 복습!
  • Int(문자열)에 문자가 있으면 nil이 반환된다.

💡 깨달은 것

사실 이 짧은 코드속에 시행착오가 많았다.

    for c in s {
        if c.isNumber ?? false {
            continue
        } else {
            return false
        }
    } // 실패
return Int(s) == nil ? false  : true // 5,6,28,29 실패
return s.allSatisfy({ $0.isNumber }) // 5,6,28,29 실패

4~5번을 제출했는데 계속 5,6,28,29만 실패했다.
결론은 문자열의 길이가 4 또는 6이어야만 한다는 조건이 없었다.
이것도 모르고 근 10분을 넘게 기호가 들어와서 오류가 났는지 고민했다..
문제를 제대로 보자는 큰 교훈을 얻고 마무리 😅


그래서 얻은 9점..! 😙
난 아직 백준 랭킹이나 백준잔디, 리트코드 잔디보다 이 점수가 더 좋다.
높은 점수를 받을 수 있는 코드를 고민하게 한다 ㅋㅋ

다른 풀이

func solution(_ s:String) -> Bool {
    return (Int(s) != nil && (s.count == 4 || s.count == 6)) ? true : false
}
  • 조건을 하나 더 걸면 되는거였네 ... 이런 방법이?
profile
블로그 이사중 🚚 byukbyak.tistory.com
post-custom-banner

0개의 댓글