[백준] 2675

당당·2023년 4월 21일
0

백준

목록 보기
27/179

https://www.acmicpc.net/problem/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

🔍출처

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문을 저렇게 돌렸을까?

profile
MySQL DBA 신입 지원

0개의 댓글