컴퓨터/프로그래머스

[Java] 프로그래머스 코딩테스트 연습 / 문자열 곱하기

peridott 2026. 1. 22. 21:23

문제


정답

class Solution {
	public String solution(String my_string, int k) {
    	String answer = "";
        
        for(int i = 0; i < k; i++) {
        	answer += my_string;
        }
        
        return answer;
    }
}

개념설명

1. 클래스 선언

class Solution {

✔️ 의미

  • Solution이라는 클래스 정의

 

2. 메서드 선언

public String solution(String my_string, int k) {

✔️ 의미

  • 문자열과 정수를 받아서 문자열 k번 반복한 결과를 반환하는 메서드
요소 의미
public 외부 호출 가능
String 반환 타입
solution 메서드 이름
String my_string 반복할 문자열
int k 반복 횟수

 

3. 결과 문자열 변수 선언

String answer = "";

✔️ 의미

  • 최종 결과를 저장할 문자열 변수
  • 빈 문자열로 초기화
  • 문자열 누적의 시작점 역할

 

4. for문 시작 (k번 반복)

for(int i = 0; i < k; i++) {

✔️ 의미

  • 문자열 my_string을 정확히 k번 반복

✔️ for문 구성 요소 분석

for(초기식; 조건식; 증감식)
부분 의미
int i = 0 반복 횟수 카운트 시작
i < k k번 미만까지
i++ 1씩 증가

 

5. 문자열 누적

answer += my_string;

✔️ 의미

  • 기존 answer 뒤에 my_string을 이어 붙임

✔️ 풀어 쓰면

answer = answer + my_string;

 

6. for문 종료

}
  • k번 반복 완료 후 종료

 

7. 결과 반환

return answer;

✔️ 의미

  • 완성된 문자열을 반환

 

8. 클래스 종료

}

🔚 전체 실행 흐름 요약

  1. 반복할 문자열과 횟수 입력
  2. 빈 문자열 준비
  3. for문으로 k번 반복
  4. 매번 문자열 누적
  5. 완성된 문자열 반환

💡 핵심 포인트 정리

문법 의미
for 반복
+= 누적 대입
String 문자열
return 결과 반환

⚠️ 주의사항

❌ 반복 횟수가 클 경우

answer += my_string;
  • 문자열은 불변 객체
  • 반복할수록 성능 저하 발생

✔️ 더 좋은 방법(고급)

StringBuilder sb = new Stringbuilder();
for(int i = 0; i < k; i++) {
	sb.append(my_string);
}
return sb.toString();
  • 이 코드는 하나의 문자열을 지정된 횟수만큼 반복해서 하나의 문자열로 만드는 로직이다.