ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JUNGOL 기초다지기 08 반복제어문3
    보관함 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

    댓글

Designed by Tistory.