일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- java
- Spring
- IntelliJ
- 백준
- SQL
- 피보나치
- mybatis
- 정렬
- springboot
- mariaDB
- BFS
- 그리디알고리즘
- 코테
- 이펙티브자바
- 깊이우선탐색
- DP
- db
- 알고리즘
- 우선순위큐
- select
- Effective Java
- 다이나믹프로그래밍
- Greedy
- 탐욕법
- 너비우선탐색
- Database
- 데이터베이스
- join
- 프로그래머스
- DFS
Archives
- Today
- Total
땀두 블로그
[백준] 2675번 - 문자열 반복 본문
문제
문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다.
QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./: 이다.
입력
첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다.
출력
각 테스트 케이스에 대해 P를 출력한다.
예제 입력 1
2 3 ABC 5 /HTP
|
예제 출력 1
AAABBBCCC /////HHHHHTTTTTPPPPP
|
import java.util.Scanner;
public class p2675 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int[] n = new int[a];
String[] s = new String[a];
for (int i = 0; i < a; i++) {
n[i] = sc.nextInt();
s[i] = sc.nextLine();
}
for (int i = 0; i < a; i++) {
for (int j = 1; j < s[i].length(); j++) {
for (int k = 0; k < n[i]; k++) {
System.out.print(s[i].charAt(j));
}
}
System.out.println();
}
}
}
이 문제는 3중 포문을 통해서 각각의 배열반복, 횟수반복, 문자열 반복을 이용해주면 된다.
nextLine 으로 문자를 받을 때 앞에 공백 버퍼가 하나 생겨서 지워주었다. 이 방법에 대해선 조금 더 생각해봐야 할 것 같다.
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 2908번 - 상수 (0) | 2022.03.18 |
---|---|
[백준] 2742 - 기찍N (0) | 2022.03.18 |
[백준] 2741 - N 찍기 (0) | 2022.03.18 |
[백준] 11654번 - 아스키코드 (0) | 2022.03.18 |
[백준] 2739번 - 구구단 (0) | 2022.03.18 |
Comments