문자열 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
를 출력한다.
2
3 ABC
5 /HTP
AAABBBCCC
/////HHHHHTTTTTPPPPP
ICPC > Regionals > North America > Greater New York Region > 2011 Greater New York Programming Contest A번
-문제를 번역한 사람: baekjoon
-문제의 오타를 찾은 사람: jh05013
-잘못된 데이터를 찾은 사람: pichulia
import java.util.Scanner;
public class Code2675 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int num=0;
num=scanner.nextInt();
int roop=0;
String string;
String[] out=new String[num];
for(int i=0;i<num;i++) {
roop=scanner.nextInt(); //roop count
string=scanner.next();
for(int j=0;j<string.length();j++) {
for(int k=0;k<roop;k++) {
if(out[i]==null) {
out[i]=String.valueOf(string.charAt(j));
}
else {
out[i]=out[i]+string.charAt(j);
}
}
}
}
for(int i=0;i<num;i++) {
System.out.println(out[i]);
}
}
}
처음에 if(out[i]==null)
부분을 안해주니 자꾸 처음에 null
이 출력된 다음 AAABBBCCC가 출력됐다. 그래서 수정.
사실 첫 고비는 파이썬처럼 나는 문자숫자 하면 문자가 여러번 출려될 줄 알았는데, 자바에서는 아니 아스키코드값에 3을 해서..
결국 저렇게 하나식 더해주는 것으로 해결했다.
지금 보니 더 쉽게 풀 수 있을 것 같기도 한데?
왜 for문을 저렇게 돌렸을까?