Programming/Algorithm

[백준] 2675번 : 문자열 반복 - JAVA [자바]

Supreme_YS 2021. 12. 27. 17:13
 

2675번: 문자열 반복

문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다

www.acmicpc.net

메서드를 사용해서 구현해보겠다고. 까분 흔적

package Daily;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class P2675 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int T = Integer.parseInt(br.readLine());

        for (int i = 0; i < T; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine(), " ");
            int R = Integer.parseInt(st.nextToken());
            String S = st.nextToken();

            System.out.println(repeater(R, S));
        }
    }

    public static String repeater(int R, String S) {
        String result = S;

        for (int i = 0; i < S.length(); i++) {
            for (int j = 0; j < R; j ++) {
                result += result.charAt(i);
            }
        }
        result = result.substring(S.length());
        return result;
    }
}

풀이 생각 정리

  • 입력은 몇 개를 받아야 하지? -> 3개 (테스트 횟수, 반복 횟수, 문자열)
  • 무슨 처리를 해야하지? -> 문자열에서 / 문자 하나를 / 반복 횟수만큼 반복하고 / 한 줄로 출력 -> 이렇게 네 개의 프로세스로 나눴다.
  • 그래서 첫 번째 for문을 작성하는 도중 for문을 또 안에다 쓰고싶지 않았다. -> 메서드를 사용해볼까? 
  • 메서드를 사용해서 구현하기로 결심했고, 그 결과가 repeater라는 메서드를 구현했다.
  • repeater는 반복 횟수와 문자열이 입력되면 처리되어 결과값을 반환하게 된다.
  • 구현하는데만 30분 넘게 걸렸다 ^^;; 실력 부족이다. 
  • 근데 메서드 사용하는거 은근 재밌더라..누가 읽으실지 모르겠지만 꼭 해보시길! 강추강추! (나만 죽을 수 없지)
  • 딱히 좋은 성능을 내진 못한듯하다..ㅠㅠ