본문 바로가기
📖 Coding Test/Programmers LV.0

[프로그래머스 LV.0] 대문자와 소문자

by hyebin (Helia) 2023. 1. 9.

대문자와 소문자

문제 설명

문자열 my_string이 매개변수로 주어질 때, 대문자는 소문자로 소문자는 대문자로 변환한 문자열을 return 하도록 solution 함수를 완성해 주세요.

제한 사항

  • 1 ≤ my_string의 길이 ≤ 1,000
  • my_string은 영어 대문자와 소문자로만 구성되어 있습니다.

입출력 예

my_string result
"cccCCC" "CCCccc"
"abCdEfghIJ" "ABcDeFGHij"

입출력 예 설명

입출력 예 #1

  • 소문자는 대문자로 대문자는 소문자로 바꾼 "CCCccc"를 return 합니다.

입출력 예 #2

  • 소문자는 대문자로 대문자는 소문자로 바꾼 "ABcDeFGHij"를 return합니다.
 

제출

import Foundation

func solution(_ my_string:String) -> String {
    var answer = ""

    for s in my_string{
        if  65 <= s.asciiValue! && s.asciiValue! <= 90{
            answer += s.lowercased()
        }else{
            answer += s.uppercased()
        }
    }
    return answer
}
입력받은 문자열의 문자를 하나씩 비교하며, 아스키코드 값이 65 이상 90 이하 라면 대문자이기 때문에  문자를 소문자로 바꾼 후 answer 변수에 추가한다.
아니라면 문자를 대문자로 바꿔 answer에 추가한다. 

다른 풀이

import Foundation

func solution(_ my_string:String) -> String {
    var result = ""
  
    for c in my_string {
        let s = String(c)
        let lo = s.lowercased()
        let up = s.uppercased()
        result += (s == lo) ? up : lo
    }
    return result

}
입력받은 문자열의 문자를 하나씩 비교하며, 문자를 대문자, 소문자로 변경해 각각 변수에 저장한다.
문자와 소문자로 변환한 문자가 동일하면, 대문자로 변환한 문자를 아니라면 소문자로 변환한 문자를 result 변수에 추가한다.
반응형

댓글