문제

정답
class Solution {
public String solution(String my_string, String overwrite_string, int s) {
String answer = "";
String answerForward = my_string.substring(0, s);
String answerBackward = my_string.substring(s + overwrite_string.length(), my_string.length());
answer = answerForward + overwrite_string + answerBackward;
return answer;
}
}
개념설명
1. 클래스 선언
class Solution {
✔️ 의미
- Solution이라는 클래스 정의
2. 메서드 선언
public String solution(String my_string, String overwrite_string, int s) {
✔️ 의미
- 문자열을 처리해서 문자열을 반환하는 메서드
| 부분 | 의미 |
| public | 외부에서 호출 가능 |
| String | 반환 타입 (문자열) |
| solution | 메서드 이름 |
| String my_string | 원본 문자열 |
| String overwrite_string | 덮어 쓸 문자열 |
| int s | 덮어쓰기 시작 인덱스 |
3. 반환용 변수 선언
String answer = "";
✔️ 의미
- 최종 결과 문자열을 담을 변수
- 처음에는 빈 문자열로 초기화
4. 앞부분 문자열 자르기
String answerForward = my_string.substring(0, s);
✔️ 의미
- my_string의 앞부분을 잘라서 작성
✔️ substring(beginIndex, endIndex) 설명
substring(시작인덱스, 끝인덱스)
- 시작 인덱스 : 포함
- 끝 인덱스 : 미포함
5. 뒷 부분 문자열 자르기
String answerBackward = my_string.substring(
s + overwrite_string.length(),
my_string.length()
);
✔️ 의미
- 덮어 쓴 이후의 남은 문자열 부분을 잘라냄
6. overwrite_wtring.length()
overwrite_string.length()
✔️ 의미
- 덮어 쓸 문자열의 길이 반환
✔️ 예시
overwrite_string = "ABC";
overwrite_string.length() → 3
7. 왜 s + overwrite_string.length() 인가?
✔️ 이유
- s부터 덮어쓰는 만큼은 제거해야 하기 때문
8. my_string.length()
my_string.length()
✔️ 의미
- 문자열 전체 길이 반환
- 마지막 인덱스 + 1
9. 문자열 합치기
answer = answerForward + overwrite_string + answerBackward;
✔️ 의미
- 앞부분 + 덮어쓸 문자열 + 뒷부분
- 문자열 + → 문자열 연결
✔️ 이 줄을 풀어서 쓰면
answer =
(앞부분)
+ (덮어쓴 문자열)
+ (뒷부분);
10. 결과 반환
return answer;
✔️ 의미
- 완성된 문자열을 호출한 곳으로 반환
🔚 전체 실행 흐름 요약
- 원본 문자열에서 앞부분 자르기
- 덮어쓴 부분 제외하고 뒷부분 자르기
- 앞 + 덮어쓰기 문자열 + 뒤 합치기
- 결과 반환
💡 핵심 포인트 정리
| 문법 | 의미 |
| substring(a, b) | 문자열 자르기 |
| length() | 문자열 길이 |
| + | 문자열 연결 |
| return | 값 반환 |
⚠️ 주의사항
❌ 잘못된 경우
substring(s + overwrite_string.length())
- 이렇게 쓰면 끝 인덱스 초과 위험
✔️ 항상 범위를 정확히 계산해야 함
'컴퓨터 > 프로그래머스' 카테고리의 다른 글
| [Java] 프로그래머스 코딩테스트 연습 / 문자 리스트를 문자열로 변환하기 (0) | 2026.01.21 |
|---|---|
| [Java] 프로그래머스 코딩테스트 연습 / 문자열 섞기 (0) | 2026.01.20 |
| [Java] 프로그래머스 코딩테스트 연습 / 문자열 돌리기 (0) | 2026.01.18 |
| [Java] 프로그래머스 코딩테스트 연습 / 문자열 붙여서 출력하기 (1) | 2026.01.17 |
| [Java] 프로그래머스 코딩테스트 연습 / 덧셈식 출력하기 (0) | 2026.01.17 |