반응형
문제

입력
첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다.
출력
각 테스트 케이스에 대해 P를 출력한다.

결과
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Baek2675 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int testCase = Integer.parseInt(br.readLine());
for(int i=0;i<testCase;i++) {
String test[] = br.readLine().split(" ");
StringBuilder sb = new StringBuilder();
for(int j=0;j<test[1].length();j++) { //반복할 단어
for(int q=0;q<Integer.parseInt(test[0]);q++) { //반복할 횟수
sb.append(test[1].charAt(j));
// System.out.println(test[1].charAt(j));
}
}
System.out.println(sb);
}
}
}
문제풀이
첫번째 반복문에서는 입력을 받아 split() 메소드로 test[0]에는 글자별 반복 횟수 test[1]에는 단어를 저장한다.
두번째 반복문에서는 test[1].length()를 통해 단어의 길이만큼 반복문을 수행시킨다.
세번재 반복문에서는 test[0]을 통해 원하는 횟수만큼 한 글자를 반복해서 출력한다.
첫 시도에서는 글자마다 하나하나 출력하는 바람에
생각보다 시간이 오래 잡혀먹어서 다른분들 코드를 참고해 다시 시도했다.
두번째 시도에선 StringBuilder를 통해 출력할 글자들을 차곡차곡 쌓아 한번에 출력을 해주었다.
아무래도 하나하나 출력하는 것 보다 StringBuilder를 통해 버퍼의 기능을 수행해서 성능이 더 좋아졌을 거라고 생각한다.
반응형
'Algorithm' 카테고리의 다른 글
백준 알고리즘 9020번 골드바흐의 추측 문제풀이 - 자바(JAVA) (0) | 2022.06.01 |
---|---|
분할 정복법(Divide & Conquer)과 합병 정렬(Merge Sort) (0) | 2022.02.22 |
백준 알고리즘 11720번 문제풀이 - 자바(JAVA) (0) | 2021.12.26 |
백준 알고리즘 11654번 아스키코드 변환 - 자바(JAVA) (0) | 2021.12.26 |
백준 알고리즘 1065번 한수 구하기 - 자바(JAVA) (0) | 2021.12.24 |
댓글