문제:
영어 알파벳으로 이루어진 문자열 str이 주어집니다.
각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.
https://school.programmers.co.kr/learn/courses/30/lessons/181949
제한사항:
- 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를 사용하여 한 줄로 문제를 풀 수 있는 방법도 제시해 두었습니다.
'Programmers > LV.0' 카테고리의 다른 글
[Swift] 덧셈식 출력하기 / LV.0, 181947, 프로그래머스 (0) | 2023.06.20 |
---|---|
[Swift] 특수문자 출력하기 / LV.0, 181948, 프로그래머스 (0) | 2023.06.19 |
[Swift] 문자열 반복해서 출력하기 / LV.0, 181950, 프로그래머스 (0) | 2023.06.19 |
[Swift] a와 b 출력하기 / LV.0, 181951, 프로그래머스 (0) | 2023.06.18 |
[Swift] 문자열 출력하기 / LV.0, 181952, 프로그래머스 (0) | 2023.06.18 |