본문 바로가기

Programmers/LV.0

[Swift] 대소문자 바꿔서 출력하기 / LV.0, 181949, 프로그래머스

문제:

 

영어 알파벳으로 이루어진 문자열 str 주어집니다.

알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.

https://school.programmers.co.kr/learn/courses/30/lessons/181949

 

프로그래머스

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

programmers.co.kr

 

제한사항:

  • 1 ≤ str의 길이 ≤ 20
    • str 알파벳으로 이루어진 문자열입니다.

 

풀이:

let line = readLine()!
let resultString = line.map { character in
    if character.isLowercase {
        return character.uppercased()
    } else {
        return character.lowercased()
    }
}.joined()
print(resultString)

// 또는
// print(readLine()?.map { $0.isLowercase ? $0.uppercased() : $0.lowercased() }.joined() ?? "")

 

입력 받은 각 문자 하나하나가 대문자인지 소문자인지 판단해서 반대로 출력하면 되는 문제입니다.

고차함수 map을 사용해서 character를 하나하나 확인하여 소문자라면 대문자를, 대문자라면 소문자를 돌려주도록 하여 [String] 타입의 배열을 만들고, joined() 함수를 사용하여 String으로 만들어 주었습니다.

아래 주석에는 ternary를 사용하여 한 줄로 문제를 풀 수 있는 방법도 제시해 두었습니다.