[프로그래머스/java] 문자열 겹쳐쓰기

2025. 5. 18. 11:45·코테/프로그래머스 JAVA Lv.0

 

 

* 문제 풀이

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

 

처음에 이 코드로 실행했는데 테스트 6에서 실패가 떴다.

질문하기 보니까 반례가 

입력값 〉 "aaaaaa", "bbb", 3
기댓값 〉 "aaabbb"

str이 aaa라서 replace 때문에 a가 다 b로 바뀌어서 실패.

 

 

흠 그럼 어케 하냐

검색해보니까 자른 후에 앞뒤 붙이기를 주로 하길래 나도 그렇게 했다.

class Solution {
    public String solution(String my_string, String overwrite_string, int s) {
        String answer = "";
        String str1 = my_string.substring(0, s); //인덱스 0부터 s 전까지의 문자열 추출
        String str2 = my_string.substring(s + overwrite_string.length()); 
        // overwrite_string 이후부터 끝까지
        return answer = str1 + overwrite_string + str2 ;
    }
}

문제풀이 성공!

 

 

 

* 프로그래머스 다른 풀이

class Solution {
    public String solution(String my_string, String overwrite_string, int s) {
        char[] my_chars = my_string.toCharArray();
        char[] overwrite_chars = overwrite_string.toCharArray();
        for (int i=0; i<overwrite_chars.length; i++) {
            my_chars[s + i] = overwrite_chars[i];
        }
        return String.valueOf(my_chars);
    }
}

좋은 코드래

 

char[] my_chars = my_string.toCharArray();
char[] overwrite_chars = overwrite_string.toCharArray();

문자열을 문자 배열로 변환하여 직접 인덱스로 값을 수정할 수 있다.

 

for (int i = 0; i < overwrite_chars.length; i++) {
    my_chars[s + i] = overwrite_chars[i];
}

my_chars의 s번째부터 overwrite_chars를 한 글자씩 덮어쓴다.

 

return String.valueOf(my_chars);

수정된 문자 배열을 다시 문자열로 변환 후 반환

 

 

class Solution {

    public String solution(String my_string, String overwrite_string, int s) {
        String answer = my_string.substring(0, s) + overwrite_string;

        if(my_string.length() > answer.length()) {
            answer += my_string.substring(answer.length());
        }
        return answer;
    }
}

 

 

 

 

 

저작자표시 비영리 변경금지 (새창열림)

'코테 > 프로그래머스 JAVA Lv.0' 카테고리의 다른 글

[프로그래머스/java/Lv.0] 조건 문자열  (0) 2025.05.20
[프로그래머스/java] 문자열 섞기  (0) 2025.05.19
[프로그래머스/java] 문자열의 뒤의 n글자  (0) 2025.05.18
[프로그래머스/java/Lv.0] 원소들의 곱과 합  (0) 2025.05.04
[프로그래머스/java/Lv.0] 문자열 돌리기  (0) 2025.04.24
'코테/프로그래머스 JAVA Lv.0' 카테고리의 다른 글
  • [프로그래머스/java/Lv.0] 조건 문자열
  • [프로그래머스/java] 문자열 섞기
  • [프로그래머스/java] 문자열의 뒤의 n글자
  • [프로그래머스/java/Lv.0] 원소들의 곱과 합
amying
amying
공부해보겠슨
  • amying
    꽁꽁 얼어붙은 자바 위를 자박자박
    amying
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 분류 전체보기 (332)
      • 공부 (55)
        • JAVA (17)
        • Spring (17)
        • Java Script (1)
        • React (0)
        • SQL (3)
        • DB (1)
        • CS (13)
        • 기술면접 (3)
      • Git (2)
      • 강의 (36)
        • 부스트코스: Connect On: 테크와 나를 잇.. (16)
        • 부스트코스: CS50 (20)
      • 네이버 부스트캠프 베이직 (25. 06) (0)
      • 에러 (10)
      • 코테 (205)
        • 백준 (29)
        • 프로그래머스 JAVA Lv.0 (116)
        • 프로그래머스 JAVA Lv.1 (7)
        • 프로그래머스 SQL (53)
      • 개인 프로젝트 (16)
        • 책첵 CHAEKCHECK (2)
        • 일정 관리 서비스 만들기 (0)
        • 게시판 만들기 (eclipse-JSP) (14)
      • 이것저것 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    업무자동화
    코테
    springbot
    부스트코스
    코딩테스트_입문
    알고리즘
    Java
    책첵개발일지
    에러
    프로그래머스
    부스트코스강의
    git명령어
    데이터연동
    ORACLE에러
    오라클에러
    CS50
    lombok
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.4
amying
[프로그래머스/java] 문자열 겹쳐쓰기
상단으로

티스토리툴바