풀이 1) 2중 반복문을 활용해서 "*"을 행과 열의 개수 만큼 출력 시킨다.
using System;
public class Example
{
public static void Main()
{
String[] s;
Console.Clear();
s = Console.ReadLine().Split(' ');
int a = Int32.Parse(s[0]);
int b = Int32.Parse(s[1]);
for( int i=0; i<b; i++ )
{
for( int j=0; j<a; j++ )
{
Console.Write("*");
}
Console.WriteLine();
}
}
}
하지만 이럴 경우 행과 열의 개수가 늘어남에 따라 수행시간이 기하급수적으로 늘어나는 것을 볼 수 있다.
그렇다면 수행시간을 줄이기 위해서는 반복문을 최대한 적게 사용 된다.
풀이 2) new string('*', 열 개수)를 활용해 "*"을 출력하는 열에 해당하는 반복문을 제거해준다.
using System;
public class Example
{
public static void Main()
{
String[] s;
Console.Clear();
s = Console.ReadLine().Split(' ');
int a = Int32.Parse(s[0]);
int b = Int32.Parse(s[1]);
for(int i = 0; i < b; i++)
{
Console.WriteLine(new string('*',a));
}
}
}
그 결과
풀이 2)가 풀이 1)과 비교 했을 때 편차가 적고 수행시간이 짧은 것을 확인할 수 있다.
'문제 풀기 > C#' 카테고리의 다른 글
40. 3진법 뒤집기 (0) | 2025.01.22 |
---|---|
39. 최대공약수와 최소공배수 (0) | 2025.01.22 |
37. 행렬의 덧셈(고정 다차원 배열, 가변 다차원 배열) (0) | 2025.01.21 |
36. 부족한 금액 계산하기 (0) | 2025.01.21 |
35. (중요)문자열 다루기 기본(원하는 타입.TryParse(~~~, out)) (0) | 2025.01.21 |