반응형
안녕하세요. 개발 중인 정주입니다.
오늘은 프로그래머스 - 이상한 문자 만들기 문제를 풀었습니다.
목차
Github
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/12930
풀이
해당 문제는 고차 함수보다 반복문을 이용했을 때 더 깔끔하게 풀리는 문제입니다.
저는 고차 함수로 풀어보다가 아무리 생각해도 반복문이 코드가 훨씬 이쁜 것 같아 반복문으로 문제를 해결했습니다.
단어별 index를 계산하는 count 변수를 하나 정의하여 공백이면 0으로 초기화를, 공백이 아니면 1씩 증가시킵니다.
count가 짝수면 대문자로, count가 홀수면 소문자로 변경하여 결과 String 변수에 추가해줍니다.
공백일 때는 공백을 추가해줍니다.
전체 코드
import Foundation
func solution(_ s:String) -> String {
var result = ""
var count = 0
for letter in s {
if letter == " " {
result += String(letter)
count = 0
} else {
if count % 2 == 0 {
result += letter.uppercased()
} else {
result += letter.lowercased()
}
count += 1
}
}
return result
}
let s = "try hello world"
print(solution(s))
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.
반응형