이번 문제는 약간 생각할 게 있는 듯 하면서도 쉬운 편이다.
나는 출력형식에서 잠깐 헤맸다. 아무튼 문제를 이해해보자.
첫줄에는 반복될 시행의 개수가 입력된다.
예제 입출력을 보면 "2"가 그 대상인데, 첫번째 줄 이후로
나오는 시행의 개수가 2개라는 뜻을 내포한다.
이제 시행에서는 입력 형식이 바뀐다.
"숫자 문자" 형식으로 나오는데, 문자의 각 글자를 숫자만큼 반복하면 된다.
예를 들어 "3 ABC" 라면 "AAABBBCCC"를 출력해주면 된다.
이렇게 되면 일단 첫 숫자를 기반으로 첫번째 for문,
for문 안에서 숫자와 문자를 변수에 저장하고 문자의 길이를
기반으로 for문, 한 글자씩 돌아가면서 안쪽에 마지막 for문으로 숫자만큼
반복해주면 될 것 같다.
using System;
namespace unicoti {
class Program {
static void Main(string[] args) {
int.TryParse(Console.ReadLine()??"", out int num);
for(int i = 0; i < num; i++) {
string[] array = (Console.ReadLine()??"").Split(' ');
int.TryParse(array[0], out int repeat);
if(i != 0) Console.WriteLine("");
for(int j = 0; j < array[1].Length; j++) {
for(int k = 0; k < repeat; k++) {
Console.Write(array[1][j]);
}
}
}
}
}
}
나는 이렇게 표현했다.
한 줄 빼고는 위에서 언급한 로직을 그대로 표현한것인데,
if(i != 0) Console.WriteLine(""); 이 그 대상이다.
형식을 맞춰주기 위해서 필요했던 작업이다.
아니면 string 변수를 추가해서 + 연산을 해준 다음
마지막에 한줄씩 출력해주는것도 나쁘지 않다만
나는 현 코드를 최대한 바꾸고 싶지 않아 저 한줄을 추가하는 방향으로 완성했다.
오늘의 느낀점)
Console.WriteLine("")이 가능하다는걸 알게되었다.
뭐 굳이 안될것도 없겠지만 줄바꿈이 필요할때 항상
출력할 문자까지 사용해서 저 코드를 사용했는데,
그냥 형식만 맞추면 되는 거라면 앞으로 저걸 유용하게 사용할 듯 싶다.
이상으로 도움이 되었길 바라며,
끝.
'코딩테스트 (C#)' 카테고리의 다른 글
백준 2908 : 상수 - C# 풀이 (0) | 2024.10.26 |
---|---|
백준 1152 : 단어의 개수 - C# 풀이 (0) | 2024.10.24 |
백준 10809: 알파벳 찾기 - C# 풀이 (1) | 2024.10.22 |
백준 11720: 숫자의 합 - C# 풀이 (0) | 2024.10.22 |
백준 11654 : 아스키 코드 - C# 풀이 (4) | 2024.09.25 |
댓글