문제

 

생각한 방법 / 수도코드

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

+ Recent posts