본문 바로가기

iOS 앱 개발자 프로젝트/알고리즘 코드카타

[Algorithm] 문자열 다루기 (w/ Swift)

문자열 다루기
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

이번 문제는 문자열 s가 길이가 4 또는 6이고, 숫자로만 구성되어 있는지 확인하는 거야.

간단하게 생각하면, 두 가지 조건을 체크하면 돼 ! 

  1. s의 길이가 4 또는 6인지.
  2. 모든 문자가 숫자인지.

 

 

func solution(_ s: String) -> Bool {
    // 첫 번째 조건: s의 길이가 4 혹은 6인지 확인
    if s.count == 4 || s.count == 6 {
        // 두 번째 조건: s가 모두 숫자로만 이루어져 있는지 확인
        // 모든 문자가 숫자인지 확인하는 방법으로 s의 문자들 중에서 숫자가 아닌 게 있는지 체크할 수 있어.
        // isNumber를 쓰면 각 문자가 숫자인지 확인 가능해.
        return s.allSatisfy { $0.isNumber }
    }
    // 길이가 4나 6이 아니면 false 리턴
    return false
}

 

 

  • 첫 번째 조건: if s.count == 4 || s.count == 6 — 먼저 문자열 s의 길이가 4 혹은 6인지 체크해. 만약 이 조건을 만족하지 않으면 바로 false를 반환할 거야.
  • 두 번째 조건: s.allSatisfy { $0.isNumber } — 여기서 allSatisfy라는 메소드를 쓰는데, 이건 문자열의 모든 문자들이 주어진 조건(여기선 숫자인지 여부)을 만족하는지 확인하는 메소드야. $0.isNumber는 문자 하나하나가 숫자인지 확인하는 거고, 이게 모두 true면 전체가 숫자라는 거지.
  • 최종 반환: 만약 길이 조건을 만족하고, 모든 문자가 숫자라면 true를 반환하고, 둘 중 하나라도 아니면 false를 반환하는 구조야.

 

예를 들어,

  1. s = "1234"일 때:
    • 길이는 4고, 숫자로만 이루어져 있으니까 true를 반환.
  2. s = "a234"일 때:
    • 숫자가 아닌 문자가 포함되어 있으니까 false를 반환.

 

이렇게 하면 문자열이 숫자로만 이루어져 있는지, 그리고 길이가 맞는지 쉽게 확인할 수 있어! ˶•⩊•˶