반응형

안녕하세요. 개발 중인 정주입니다.

 

오늘은 프로그래머스 - 이상한 문자 만들기 문제를 풀었습니다.

 


목차


    Github

     

    GitHub - jeongju9216/SwiftAlgorithm: 스위프트 알고리즘

    스위프트 알고리즘. Contribute to jeongju9216/SwiftAlgorithm development by creating an account on GitHub.

    github.com

     

    문제 링크

    https://programmers.co.kr/learn/courses/30/lessons/12930

     

    코딩테스트 연습 - 이상한 문자 만들기

    문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을

    programmers.co.kr

     


    풀이

    해당 문제는 고차 함수보다 반복문을 이용했을 때 더 깔끔하게 풀리는 문제입니다.

    저는 고차 함수로 풀어보다가 아무리 생각해도 반복문이 코드가 훨씬 이쁜 것 같아 반복문으로 문제를 해결했습니다.

     

    단어별 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))

    아직은 초보 개발자입니다.

    더 효율적인 코드 훈수 환영합니다!

    공감 댓글 부탁드립니다.

     

     

    반응형
    유정주