Where who wants to meet someone

문자열 여러 번 뒤집기 본문

프로그래머스 알고리즘 문제 기록/코딩 기초 트레이닝

문자열 여러 번 뒤집기

Lust3r 2024. 1. 17. 23:04
728x90

문제

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

 

프로그래머스

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

programmers.co.kr

 

내 답안 / 다른 사람들의 답안

import Foundation

func solution(_ my_string:String, _ queries:[[Int]]) -> String {
    var string = my_string.map { String($0) }

    for query in queries {
        var i = query[0], j = query[1]

        while i < j {
            string.swapAt(i, j)
            i += 1
            j -= 1
        }
    }

    return string.joined()
}

- string 변수에 my_string의 각 항목을 String으로 형변환한 배열을 저장

- queries를 for..in으로 돌면서 i가 j보다 작은 경우에 i와 j 인덱스에 있는 글자를 swapAt으로 위치를 바꾸고, i와 j의 값을 변동했다.

- 모든 쿼리 반복이 끝나면 string배열을 joined()로 String으로 만들어준 후 반환

 

import Foundation

func solution(_ my_string:String, _ queries:[[Int]]) -> String {
    var my_string = Array(my_string)
    queries.forEach {
        my_string.replaceSubrange($0[0]...$0[1], with: Array(my_string[$0[0]...$0[1]].reversed()))
    }
    return String(my_string)
}

https://developer.apple.com/documentation/swift/array/replacesubrange(_:with:)-6a2ai

 

replaceSubrange(_:with:) | Apple Developer Documentation

Replaces a range of elements with the elements in the specified collection.

developer.apple.com

 

점수: +2