보관함

JUNGOL 기초다지기 08 반복제어문3

niamdank 2019. 11. 24. 16:37

프로그래밍에서 가장 기초적인 내용을 다루는 기초 다지기입니다.

이번 포스팅은 기초 다지기 중 여덟 번째인 반복제어문3 문제를 풀어보도록 하겠습니다.

 

기초 내용인 만큼 다른 설명없이 문제와 코드만 간단하게 작성하도록 하겠습니다.


549 : 반복제어문3 - 자가진단1

#include <iostream>

using namespace std;

int main(void)
{
	int n;

	cin >> n;

	int count = 0, sum = 0;

	for (int i = 1; i <= n && sum < n; i += 2, count++)
	{
		sum += i;
	}

	cout << count << ' ' << sum << endl;
}

 

634 : 반복제어문3 - 자가진단2

#include <iostream>

using namespace std;

int main(void)
{
	int n;

	cin >> n;

	for (int i = 1; i <= n; ++i)
	{
		for (int j = 0; j < i; ++j)
		{
			cout << '*';
		}
		cout << endl;
	}
}

 

550 : 반복제어문3 - 자가진단3

 

이런식의 문제는 문제를 나눠서 생각하면 쉽게 해결이 가능합니다. 이 문제는 위, 아래로 나눌 수 있습니다.

#include <iostream>

using namespace std;

int main(void)
{
	int n;

	cin >> n;

	// 위
	for (int i = n; i >= 1; --i)
	{
		for (int j = 0; j < i; ++j)
		{
			cout << '*';
		}
		cout << endl;
	}

	// 아래
	for (int i = 1; i <= n; ++i)
	{
		for (int j = 0; j < i; ++j)
		{
			cout << '*';
		}
		cout << endl;
	}
}

 

551 : 반복제어문3 - 자가진단4

 

이 문제도 마찬가지로 공백을 찍는 부분과 실제 별을 찍는 부분을 나눠서 생각하면 됩니다.

#include <iostream>

using namespace std;

int main(void)
{
	int n;

	cin >> n;

	for (int i = n; i >= 1; --i)
	{
		// 공백
		for (int j = n - i; j >= 1; --j)
		{
			cout << ' ';
		}

		// 별
		for (int j = 1; j <= i; ++j)
		{
			cout << '*';
		}
		cout << endl;
	}
}

 

552 : 반복제어문3 - 자가진단5

 

자가진단4와 동일한 문제입니다. 다만 별의 개수가 단계마다 2n - 1 만큼으로 진행된다는 점만 유의하면 됩니다.

#include <iostream>

using namespace std;

int main(void)
{
	int n;

	cin >> n;

	for (int i = n; i >= 1; --i)
	{
		// 공백
		for (int j = n - i; j >= 1; --j)
		{
			cout << ' ';
		}

		// 별
		for (int j = 1; j <= 2 * i - 1; ++j)
		{
			cout << '*';
		}
		cout << endl;
	}
}

 

553 : 반복제어문3 - 자가진단6

 

위와 동일한 문제입니다. 다만 별 대신에 문자를 출력한다는 점이 다릅니다.

여기에서는 char가 원래 숫자라는 것에 유의하시면 어렵지 않게 풀 수 있습니다.

#include <iostream>

using namespace std;

int main(void)
{
	int n;

	cin >> n;

	char ch = 'A';
	for (int i = n; i >= 1; --i)
	{
		for (int j = 1; j <= i; ++j)
		{
			cout << ch++;
		}
		cout << endl;
	}
}

 

554 : 반복제어문3 - 자가진단7

 

이 문제도 기본적으로 공백과 별을 조합해 역 삼각형을 만든 문제와 비슷합니다.

다만 여기에서는 공백 대신에 문자를 출력한 점이 다르다고 할 수 있습니다.

#include <iostream>

using namespace std;

int main(void)
{
	int n;

	cin >> n;

	char ch = 'A';
	for (int i = n, num = 1; i >= 1; --i)
	{
		// 숫자
		for (int j = 1; j <= i; ++j)
		{
			cout << num++ << ' ';
		}

		for (int j = i; j <= n; ++j)
		{
			cout << ch++ << ' ';
		}
		cout << endl;
	}
}

 

140 : 반복제어문3 - 형성평가1

#include <iostream>

using namespace std;

int main(void)
{
	int var;

	int sum = 0, count = 0;
	for (int i = 0; i < 20; ++i)
	{
		cin >> var;

		if (var == 0)
			break;

		sum += var;
		count++;
	}

	int avg = sum / count;
	
	cout << sum << ' ' << avg << endl;
}

 

141 : 반복제어문3 - 형성평가2

#include <iostream>

using namespace std;

int main(void)
{
	int var;

	cin >> var;

	for (int i = var; i <= 100; i += var)
	{
		cout << i << ' ';
		if (i % 10 == 0)
			break;
	}
	cout << endl;
}

 

142 : 반복제어문3 - 형성평가3

#include <iostream>

using namespace std;

int main(void)
{
	int n;

	cin >> n;

	for (int i = 0; i < n; ++i)
	{
		for (int j = 0; j <= i; ++j)
		{
			cout << '*';
		}
		cout << endl;
	}

	for (int i = n - 1; i >= 0; --i)
	{
		for (int j = 0; j < i; ++j)
		{
			cout << '*';
		}
		cout << endl;
	}
}

 

143 : 반복제어문3 - 형성평가4

#include <iostream>

using namespace std;

int main(void)
{
	int n;

	cin >> n;

	// 위
	for (int i = n; i > 1; --i)
	{
		// 공백
		for (int j = n - i; j > 0; --j)
		{
			cout << ' ';
		}

		for (int j = 0; j < 2 * i - 1; ++j)
		{
			cout << '*';
		}
		cout << endl;
	}

	// 아래
	for (int i = 1; i <= n; ++i)
	{
		// 공백
		for (int j = n - i; j > 0; --j)
		{
			cout << ' ';
		}

		for (int j = 0; j < 2 * i - 1; ++j)
		{
			cout << '*';
		}
		cout << endl;
	}
}

 

144 : 반복제어문3 - 형성평가5

#include <iostream>

using namespace std;

int main(void)
{
	int n;

	cin >> n;

	for (int i = 0; i < n; ++i)
	{
		for (int j = 0; j < 2 * (n - i - 1); ++j)
		{
			cout << ' ';
		}

		for (int j = 0; j < 2 * i + 1; ++j)
		{
			cout << '*';
		}
		cout << endl;
	}
}

 

145 : 반복제어문3 - 형성평가6

#include <iostream>

using namespace std;

int main(void)
{
	int n;

	cin >> n;

	for (int i = 0; i < n; ++i)
	{
		for (int j = 0; j < 2 * (n - i - 1); ++j)
		{
			cout << ' ';
		}

		for (int j = 0; j <= i; ++j)
		{
			cout << j + 1 << ' ';
		}
		cout << endl;
	}
}

 

146 : 반복제어문3 - 형성평가7

#include <iostream>

using namespace std;

int main(void)
{
	int n;

	cin >> n;

	char ch = 'A';
	int num = 0;
	for (int i = 0; i < n; ++i)
	{
		for (int j = 0; j < n - i; ++j)
		{
			cout << ch++ << ' ';
		}

		for (int j = 0; j < i; ++j)
		{
			cout << num++ << ' ';
		}
		cout << endl;
	}
}

 

147 : 반복제어문3 - 형성평가8

#include <iostream>

using namespace std;

int main(void)
{
	int n;

	cin >> n;

	int num = 1;
	for (int i = n; i > 0; --i)
	{
		for (int j = 0; j < n - i; ++j)
		{
			cout << "  ";
		}

		for (int j = 0; j < i; ++j)
		{
			cout << num++ << ' ';
		}
		cout << endl;
	}
}

 

148 : 반복제어문3 - 형성평가9

#include <iostream>

using namespace std;

int main(void)
{
	int n;

	cin >> n;

	for (int i = 0; i < n; ++i)
	{
		for (int j = 0; j <= i; ++j)
		{
			cout << "# ";
		}
		cout << endl;
	}

	for (int i = n - 1; i > 0; --i)
	{
		for (int j = 0; j < n - i; ++j)
		{
			cout << "  ";
		}

		for (int j = 0; j < i; ++j)
		{
			cout << "# ";
		}
		cout << endl;
	}
}

 

149 : 반복제어문3 - 형성평가A

#include <iostream>

using namespace std;

int main(void)
{
	int n;

	cin >> n;

	int num = 1;
	for (int i = 0; i < n; ++i)
	{
		for (int j = 0; j < n; ++j, num += 2)
		{
			cout << num % 10 << ' ';
		}
		cout << endl;
	}
}

 

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&sca=1080

 

JUNGOL | 문제은행 1 페이지

 

www.jungol.co.kr