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

풀이
2 -> 출력할 로우 개수
3 ABC -> 첫 번째 로우
5 /HTP -> 두 번째 로우
출력할 로우는 총 2번 이며
* 첫 번째 로우는 3번씩 ABC 를 각각 출력하면 된다.

결과 : AAABBBCCC
* 두 번째 로우는 5번씩 /HTP 를 각각 출력하면 된다.

결과 : /////HHHHHTTTTTPPPPP
어떤 알고리즘인지 파악하면 푸는데 어려움이 없다.
앞에 받은 숫자만큼 뒤에있는 문자열을 1개씩 읽어서 반복문들 실행시키면 된다.
위의 로직 구현
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
/**
* 문자열 반복
* @param args
*/
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int cnt = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
for (int k = 0; k < cnt; ++k) {
String[] reqStrArr = br.readLine().split(" ");
int loopCnt = Integer.parseInt(reqStrArr[0]);
String str = reqStrArr[1];
int strCnt = str.length();
for (int i = 0; i < strCnt; ++i) {
for (int j = 0; j < loopCnt; ++j) {
sb.append(str.charAt(i));
} //for -3
} //for -2
sb.append("\n");
} //for -1
System.out.println(sb.toString());
}
}

후기
* 난이도 (5점 만점)
5 : 풀 줄 알면 기업 코딩테스트는 문제 없음.
4 : 평균적인 기업 코딩테스트의 중간 이상.
3 : 평균적인 기업 코딩테스트의 쉬운 문제 .
2 : 알고리즘 문제를 연습하고 있다면 풀 수 있는 문제.
1 : 시간이 오래 걸리지 않고, 누구나 풀 수 있는 문제.
난이도는 매우 쉬운 편이었으며 반복문을 이용하면 쉽게 풀 수 있다.
'백준알고리즘 > 문자열' 카테고리의 다른 글
[백준] 18406 럭키 스트레이트 - JAVA 자바 (0) | 2021.08.12 |
---|---|
[백준] 11720 숫자의 합 - JAVA 자바 (0) | 2021.08.11 |
[백준] 10809 알파벳 찾기 - JAVA 자바 (0) | 2021.08.10 |