Light Blue Pointer
본문 바로가기
Coding Test

[프로그래머스][Lv.0]문자열 겹쳐쓰기

by Greedy 2023. 11. 2.

문제 주소

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

 

프로그래머스

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

programmers.co.kr

문제 설명

문자열 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의 길이

입출력 예

my_string overwrite_string s result

"He11oWor1d" "lloWorl" 2 "HelloWorld"
"Program29b8UYP" "merS123" 7 "ProgrammerS123"

입출력 예 설명

입출력 예 #1

  • 예제 1번의 my_string에서 인덱스 2부터 overwrite_string의 길이만큼에 해당하는 부분은 "11oWor1"이고 이를 "lloWorl"로 바꾼 "HelloWorld"를 return 합니다.

입출력 예 #2

  • 예제 2번의 my_string에서 인덱스 7부터 overwrite_string의 길이만큼에 해당하는 부분은 "29b8UYP"이고 이를 "merS123"로 바꾼 "ProgrammerS123"를 return 합니다.

 

Java 풀이과정 

⭐Java substring()

Returns a new string which is the substring of a specified string

  • public String substring(int startIndex) → returns from startIndex to the end
  • public String substring(int startIndex, int endIndex)
str.substring(2)

Java 제출 코드

class Solution {
    public String solution(String my_string, String overwrite_string, int s) {
        String answer = "";
        String left = my_string.substring(0,s);
        String right = my_string.substring(s+overwrite_string.length());
        answer = left + overwrite_string + right;
        return answer;
    }
}

Java 다른사람의 풀이

class Solution {
    public String solution(String my_string, String overwrite_string, int s) {
        StringBuilder sb = new StringBuilder(my_string);
        sb.replace(s, s + overwrite_string.length(), overwrite_string);
        return sb.toString();
    }
}

Python 풀이과정 

 

⭐Python offers many ways to substring a string. This is often called "slicing".

string[start:end:step]

start: The starting index of the substring.

end: The terminating index of the substring.

step: Every "step" character after the current character to be included.The default value is 1. If step is not included, it is assumed to be equal to 1

 

string[start:end]: Get all characters from start to end - 1

string[:end]: Get all characters from the beginning of the string to end - 1

string[start:]: Get all characters from start to the end of the string

string[start:end:step]: Get all characters from start to end - 1, not including every step character

Get the first 5 characters

string = "freeCodeCamp"
string[0:5]
string[:5]

Get a substring 4 characters long, starting from the 3rd character of the string

string[2:6]

Get the last character of the string

string[-1]

Get the last 5 characters of a string

string[-5:]

Get a substring which contains all characters except the last 4 characters and the 1st character

string[1:-4]

Get every other character from a string

string[::2]

Python 제출 코드

def solution(my_string, overwrite_string, s):
    left = my_string[:s]
    right = my_string[s+len(overwrite_string):]
    answer = left+overwrite_string+right
    return answer

Python 다른사람의 풀이

 

def solution(my_string, overwrite_string, s):
    return my_string[:s] + overwrite_string + my_string[s + len(overwrite_string):]

한 줄로 푼 사람이 많았다