728x90
반응형
SMALL
Programmers의 코딩테스트 기초다지기 문제입니다.
iOS 앱 개발과는 조금 다른 내용이라 기초부터 해보는게 좋지 않을까란 생각으로 시작해 봤는데 첨부터
막히는게 나올줄이야.. 어쩃든.. 해결해 봅니다! 저는 개발자니까..!
1. 문자열을 각 자리마다 나눠서 대소문자 체크를 한다.
2. 특정메소드가 있는지 검색
3. forEach를 통해서 해보기
먼저 Swift의 대소문자 바꾸는 메소드는 당연히 있다!
사용 방법은 간단해서 굳이 설명하지 않겠다.
나는 String 문자열을 한번에 대->소 , 소-> 대 로 바꿔주는 메소드가 있을까? 하고 찾아봤지만
그런 메소드는 존재하지 않았다. 그래서 결국 반복문을 통해서 직접 하나하나 바꿔주는게 맞다는 판단을 했다.
let input = readLine()!
var result = ""
input.forEach { chr in
var str = String(chr)
if str == str.lowercased() {
result += str.uppercased()
} else {
result += str.lowercased()
}
}
print(result)
내가 짠 코드는 이렇다.
forEach를 통해서 각 자리의 Charater 값을 가져오고 그걸 String으로 변환 해준다음
소문자인지 비교해서 바꿔주는 것!
근데 짜놓고 보니 너무 코드가 긴것 같다.
삼항연산자를 통해서 한 줄로 짤 수 있을 것 같았다.
let input = readLine()!
var a = input.map { $0.isLowercase ? $0.uppercased() : $0.lowercased()}.joined()
print(a)
이렇게 하면 a의 타입은 Array<String> 이 되고 joined 를 사용해서 하나의 String으로 다시 변환할 수 있다.
728x90
반응형
LIST
'Algorithm' 카테고리의 다른 글
[알고리즘] 기초 : 백준 10926 (0) | 2023.09.30 |
---|---|
[알고리즘] 기초 : 백준 2557 (0) | 2023.09.30 |
알고리즘 Start! (0) | 2023.09.30 |
[Swift Algorithm] 프로그래머스 바탕화면 정리 (0) | 2023.05.02 |
[Swift Algorithm] Programmers 추억점수 Swift 풀이 (0) | 2023.04.29 |