📑 1. 문제설명

⭐ 2. 정답코드
class Solution {
public String solution(String my_string, String overwrite_string, int s) {
// 앞부분과 뒷부분을 추출한 후 overwrite_string을 중간에 삽입
String before = my_string.substring(0, s);
String after = my_string.substring(s + overwrite_string.length());
return before + overwrite_string + after;
}
}
⭐ String before = my_string.substring(0, s); 에서 substring(0, s) 메서드는 마지막 인덱스를 포함하는가?
Java에서 매개변수가 2개인 substring 메서드는 시작 인덱스는 포함하지만, 끝 인덱스는 포함하지 않는다.
즉, 인덱스 0부터 s-1까지의 문자를 포함하는 부분 문자열을 반환한다.
⭐ String after = my_string.substring(s + overwrite_string.length()); 그럼 끝 인덱스 포함 안하니까 overwrite_string.length() + 1 이 아니야?
Java의 substring 메서드에는 두 가지 형태가 있고 매개변수 개수가 다르다.
1. substring(int beginIndex, int endIndex)
여기서 beginIndex는 포함되고 endIndex는 포함되지 않는다.
예를 들어, my_string.substring(0, s)는 인덱스 0부터 s-1까지의 문자를 반환한다.
2. substring(int beginIndex)
이 형태는 beginIndex부터 문자열의 끝까지 모든 문자를 반환한다.String after = my_string.substring(s + overwrite_string.length()); 이건 결국 매개변수가 1개이기 때문에 문자열의 끝까지 반환하는 것이므로, 추가적으로 + 1을 할 필요가 없다.
'Algorithm > JAVA테스트' 카테고리의 다른 글
[프로그래머스] (Java) 문자열 섞기, 두 수의 연산값 비교하기 (16) | 2025.02.06 |
---|---|
[프로그래머스] (Java) 문자열 섞기 (15) | 2025.02.06 |
[프로그래머스] (Java) 요격시스템 문제풀이 (26) | 2025.02.01 |
[프로그래머스] (Java) 대소문자 바꿔서 출력하기, 문자열 돌리기 (4) | 2025.01.13 |
[프로그래머스] (Java) 연속된 부분 수열의 합 (투포인터, 슬라이딩 윈도우 알고리즘) (68) | 2024.12.15 |
📑 1. 문제설명

⭐ 2. 정답코드
class Solution { public String solution(String my_string, String overwrite_string, int s) { // 앞부분과 뒷부분을 추출한 후 overwrite_string을 중간에 삽입 String before = my_string.substring(0, s); String after = my_string.substring(s + overwrite_string.length()); return before + overwrite_string + after; } }
⭐ String before = my_string.substring(0, s); 에서 substring(0, s) 메서드는 마지막 인덱스를 포함하는가?
Java에서 매개변수가 2개인 substring 메서드는 시작 인덱스는 포함하지만, 끝 인덱스는 포함하지 않는다.
즉, 인덱스 0부터 s-1까지의 문자를 포함하는 부분 문자열을 반환한다.
⭐ String after = my_string.substring(s + overwrite_string.length()); 그럼 끝 인덱스 포함 안하니까 overwrite_string.length() + 1 이 아니야?
Java의 substring 메서드에는 두 가지 형태가 있고 매개변수 개수가 다르다.
1. substring(int beginIndex, int endIndex)
여기서 beginIndex는 포함되고 endIndex는 포함되지 않는다.
예를 들어, my_string.substring(0, s)는 인덱스 0부터 s-1까지의 문자를 반환한다.
2. substring(int beginIndex)
이 형태는 beginIndex부터 문자열의 끝까지 모든 문자를 반환한다.String after = my_string.substring(s + overwrite_string.length()); 이건 결국 매개변수가 1개이기 때문에 문자열의 끝까지 반환하는 것이므로, 추가적으로 + 1을 할 필요가 없다.
'Algorithm > JAVA테스트' 카테고리의 다른 글
[프로그래머스] (Java) 문자열 섞기, 두 수의 연산값 비교하기 (16) | 2025.02.06 |
---|---|
[프로그래머스] (Java) 문자열 섞기 (15) | 2025.02.06 |
[프로그래머스] (Java) 요격시스템 문제풀이 (26) | 2025.02.01 |
[프로그래머스] (Java) 대소문자 바꿔서 출력하기, 문자열 돌리기 (4) | 2025.01.13 |
[프로그래머스] (Java) 연속된 부분 수열의 합 (투포인터, 슬라이딩 윈도우 알고리즘) (68) | 2024.12.15 |