연습장
10. 문자열 겹쳐쓰기 본문
Q. 문자열 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의 길이
function solution(my_string, overwrite_string, s) {
var answer = '';
return answer;
}
뭔가 기본 코드가 간결해졌다.
제출코드가 기존의 뭔가 어려운 것 에서 함수로 바뀌었다.
function 함수이름 ( 매개변수 ) { 명령 return 반환값}
문제에서 주어지는 입력 값이 매개변수에 들어가고
명령에 정답을 푸는 코드를 넣고
return 값에 원하는 출력값이 나오도록 코드를 만들면 될 것이다.
문제부터 해석해보자면
my_string 에서 s 번째 인덱스의 문자를
overwrite_string 과 1:1 로 맞 바꾸며 남은 my_string 을 더한다.
ex)
my_string = "012345"
overwrite_string = "987"
s = 2 일경우
019875 // retrun 되게 하면 된다.
my_string 인덱스 i 에 따라서
1. i<s 일 경우 my_string 문자
2. s+overwrite_string.length-1 < i 일 경우 my_string
3. 그외 overwrite_string
function solution(my_string, overwrite_string, s) {
var answer = '';
for (let i=0 ; i < my_string.length ; ++i) { // 1
if(i < s) {
answer = answer + my_string[i]
}
else if (s+overwrite_string.length-1 < i) { // 2
answer = answer + my_string[i]
}
else {
answer = answer + overwrite_string[i-s] // 3 overwrite_string 값은 0 부터 가져와야하므로 i - s 가 된다.
}}
return answer
}
다른사람 코드
function solution(my_string, overwrite_string, s) {
return my_string.slice(0,s)+overwrite_string+my_string.slice(s+overwrite_string.length);
}
slice 를 이용하여 앞부분을 가져오고 // 1
중간부분 (overwrite_string) // 3
slice 를 이용하여 뒷부분을 가져옴 // 2 와 같은 기능을 한다고 볼 수 있다.
문자열.slice(a, b) : a 인덱스 값 이상 b 인덱스 값 미만의 값을 가져온다.
str = "0123456"
str.slice(3,6) // 345
배열도 가능하다
[...str].slice(3,6) // [ '3', '4', '5' ]
str = 0123456 // 숫자의 경우 에러가 난다.
'프로그래머스 > 0단계' 카테고리의 다른 글
12. 문자 리스트를 문자열로 변환하기 (0) | 2023.06.19 |
---|---|
11. 문자열 섞기 (0) | 2023.06.17 |
09. 홀짝 구분하기 (0) | 2023.06.17 |
08. 문자열 돌리기 (2) | 2023.06.17 |
07. 문자열 붙여서 출력하기 (0) | 2023.06.17 |