처음에 문자열 S를 입력 받고, 해당 문자열의 각 문자를 R번 반복해서 새로운 문자열 P를 만들고 출력
문자열 S에는 QR Code "alphanumeric" 문자만 들어있다
QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./:
임
(1 <= T <= 1,000)
(1 <= R <= 8)
바깥 for문 (테스트 케이스)
중간 for문 (문자열 순회)
마지막 for문 (문자 반복)
💡총 시간 복잡도는
O(T*L*R)
해당 문제는 제한 시간이 1초 즉, 1억번의 연산이 가능하다
문제에서 보았을 때 T의 최대 개수, R의 최대 반복 횟수, S의 최대 문자 길이를 고려하면 1억번 보다 한참 아래이기에 무난하게 코드가 돌아갈 것이다.
import java.io.*;
import java.util.StringTokenizer;
public class No_2675 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder(); // 결과를 모아둘 StringBuilder 객체 생성
for(int i = 0; i < T; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int R = Integer.parseInt(st.nextToken());
String S = st.nextToken();
// 1. 문자열 S의 각 문자를 처음부터 순회
for(int j = 0; j < S.length(); j++) {
// 2. 선택된 문자 하나를 R번 만큼 반복
for(int k = 0; k < R; k++) {
sb.append(S.charAt(j)); // 바로 출력 안하고 sb에 보관
}
}
sb.append("\n"); // 한 번의 테스트 작업이 끝나면 줄바꿈 문자 추가
}
System.out.print(sb);
}
}
StringBuilder sb = new StringBuilder();
-> 객체 선언StringBuilder sb = new StringBuilder("abc");
-> 문자열 바로 넣기도 가능`그냥 문자열을 사용해서 결과를 만들어야하면 그냥 StringBuilder를 쓰자!!
나중에 관련 함수도 추가 하도록 하겠다!