본문 바로가기
Computer language and framework/GO

[GO] 프로그래머스 > 코딩 테스트 입문 > LV.0 문자열 겹쳐쓰기

by WhiteGoblin 2024. 10. 22.
반응형

문제 설명

문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.

 

제한사항

  • my_string와 overwrite_string은 숫자와 알파벳으로 이루어져 있습니다.
  • 1 ≤ overwrite_string의 길이 ≤ my_string의 길이 ≤ 1,000
  • 0 ≤ s  my_string의 길이 - overwrite_string의 길이

사고 회로

 

1. 시작 되는 index 전까지는 기존의 char 를 입력한다. 

 

2. range 를 통해 string 인 my_string 을 rune 으로 분해 한다. 

 

3. 이후 시작 되는 index 열 부터는 하나씩 resultString 에 추가하고 count 를 1 증가 시킨다. 

 

4. 이후 남은 문자를 추가 한다. 

func solution(my_string string, overwrite_string string, s int) string {
    
    resultString := ""
    overwriteStringCount := 0 
    
    for i , v := range my_string{

        if i < s {            
            resultString += string(v)
        } else if i >= s && i < len(overwrite_string) + s {
            resultString += string(overwrite_string[overwriteStringCount])
            overwriteStringCount++
        } else {
            resultString += string(v)
        }
    }
    return resultString
}

 

 

주요 개념? 

* string, rune 

반응형