문제
생각한 방법 / 수도코드
s번째까지만 my_string을 출력한다.
overwrite_string을 출력한다.
s번째부터 나머지 my_string을 출력한다.
이 때 출력이 아니라 solution 함수를 작성하는 것이므로,
return 값으로 답이 나와야한다.
String의 concat을 사용해서 기존 answer에 각각 글자를 갖다 붙인다.
완성된 코드
package bj_project;
import java.util.Scanner;
public class day0414 {
public static void main(String[] args) {
String answer = Solution.solution("Program29b8UYP", "merS123", 7 );
System.out.println(answer);
}
}
class Solution {
public static String solution (String my_string, String overwrite_string, int s) {
String answer = "";
for (int i = 0 ; i < s ; i ++) {
answer = answer.concat(String.valueOf(my_string.charAt(i)));
}
answer = answer.concat(overwrite_string);
for (int i = s + overwrite_string.length(); i < my_string.length(); i++) {
answer = answer.concat(String.valueOf(my_string.charAt(i)));
}
return answer;
}
}
결론 / 알게된 점
1. 메인클래스에서 Solution.solution()으로 쓰려면 class Solution 내의 solution 함수가 static이어야 한다.
static(정적) 메서드는 클래스이름으로 직접 호출이 가능하다.
static을 사용하지 않으면 인스턴스 메서드가 되는데, 이 경우에는 new 로 객체를 생성한 다음에 호출해야한다.
그래서 static으로 선언해주었다.
2. String은 불변객체이기 때문에 concat()은 결합한 결과를 리턴할 뿐, answer 자체를 바꾸지 않는다고 한다.
그러므로 기존의 answer에 리턴값을 저장 해주어야한다.
이 부분 수정하였다.
'알고리즘(백준)' 카테고리의 다른 글
1월 17일: 백준 20361번(JAVA) (2) | 2025.01.18 |
---|---|
1월 16일 : 백준 25191번(JAVA) (1) | 2025.01.16 |
1월 13일: 백준 11098번(JAVA) (4) | 2025.01.13 |
1월 12일: 백준 27434번(JAVA-> PYTHON) (1) | 2025.01.12 |
1월 12일: 백준 11365번 (1) | 2025.01.12 |