문제 주소
https://school.programmers.co.kr/learn/courses/30/lessons/181943
문제 설명
문자열 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):]
한 줄로 푼 사람이 많았다
'Coding Test' 카테고리의 다른 글
[프로그래머스][Lv.0]n의 배수 (0) | 2023.11.03 |
---|---|
[프로그래머스][Lv.0]문자열 섞기 (1) | 2023.11.02 |
[프로그래머스][Lv.0]홀짝 구분하기 (0) | 2023.11.02 |
[프로그래머스][Lv.0]문자열 돌리기 (0) | 2023.11.02 |
[프로그래머스][Lv.0]문자열 붙여서 출력하기 (0) | 2023.11.02 |