ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JUNGOL...37
    일지 2021. 1. 1. 14:40

    Language_Code/파일입출력/자가진단1


    문제                                            

    두 개의 정수를 입력받아 작은 수부터 큰 수까지 모든 정수의 합을 구하여 출력하는 프로그램을 작성하시오.

     

    * 표준입출력방식으로 작성하세요.

     

    입력 예                                        

    5 10

     

    출력 예                                        

    45


    BasicFileProcess01.h

    #include <iostream>

     

    BasicFileProcess01.cpp

    void BasicFileProcess01::Code()
    {
    	int var1, var2;
    
    	std::cin >> var1 >> var2;
    
    	int beg{ var1 < var2 ? var1 : var2 };
    	int end{ var1 > var2 ? var1 : var2 };
    
    	int sum{ 0 };
    	while (beg <= end)
    	{
    		sum += beg++;
    	}
    
    	std::cout << sum;
    }

     

    Language_Code/파일입출력/자가진단2


    문제                                            

    10개의 실수를 입력받아 첫 번째 입력 값과 마지막 입력 값의 평균을 반올림하여, 소수 첫째자리까지 출력하는 프로그램을 작성하시오.

     

    * 표준입출력방식으로 작성하세요.

     

    입력 예                                        

    15.3 123.5 0.69 85.12 3.0 51.9 100.1 1.58 5.5 10.5

     

    출력 예                                        

    12.9


    BasicFileProcess02.h

    #include <iostream>

     

    BasicFileProcess02.cpp

    void BasicFileProcess02::Code()
    {
    	float arr[10];
    
    	for (int i = 0; i < 10; i++)
    	{
    		std::cin >> arr[i];
    	}
    
    	float sum{ arr[0] + arr[9] };
    	float avg{ sum / 2 };
    	
    	std::cout.precision(1);
    	std::cout.setf(std::ios::fixed);
    
    	std::cout << avg;
    }

     

    Language_Code/파일입출력/자가진단3


    문제                                            

    10명의 학생 이름과 점수를 입력받아 이름과 점수, 등수를 입력받은 순서대로 출력하는 프로그램을 작성하시오.

    단, 출력시 "이름", "점수", "등수"는 한 칸의 공백으로 구분을 하며, Name은 4칸(%4s), Score는 5칸(%5d), Rank는 각 4칸(%4d)으로 출력한다.

     

    * 표준입출력방식으로 작성하세요.

     

    입력 예                                        

    Hong 90
    Lim 85
    Park 88
    Gong 75
    Lee 100
    Seo 90
    Jang 75
    Song 90
    Kim 95
    Sung 60

     

    출력 예                                        

    Name Score Rank
    Hong    90    3
     Lim    85    7
    Park    88    6
    Gong    75    8
     Lee   100    1
     Seo    90    3
    Jang    75    8
    Song    90    3
     Kim    95    2
    Sung    60   10

     

    Hint!

    멤버변수에 번호를 추가하여 초기화 했다가 등수를 확정한 후 번호 순으로 다시 정렬하여 출력한다. 또는 자신보다 점수가 높은 개수를 구한 후 1을 더하여 자신의 등수를 구할 수도 있다.


    BasicFileProcess03.h

    #include <iostream>
    #include <string>
    #include <iomanip>
    
    using std::string;
    
    struct Student
    {
    	string m_name;
    	int m_score{};
    	int m_rank{};
    	int m_number{};
    };

     

    BasicFileProcess03.cpp

    void BasicFileProcess03::Code()
    {
    	Student arr[10];
    
    	for (int i = 0; i < 10; i++)
    	{
    		std::cin >> arr[i].m_name >> arr[i].m_score;
    		arr[i].m_number = i;
    	}
    
    	// sort by score
    	for (int i = 1; i < 10; i++)
    	{
    		for (int j = 0; j < 10 - i; j++)
    		{
    			if (arr[j].m_score < arr[j + 1].m_score)
    			{
    				Student temp{ arr[j] };
    				arr[j] = arr[j + 1];
    				arr[j + 1] = temp;
    			}
    		}
    	}
    
    	int rank{ 1 };
    	for (int i = 0; i < 10; )
    	{
    		int rankAdder{ 1 };
    
    		arr[i].m_rank = rank;
    		while (i < 9 && arr[i].m_score == arr[i + 1].m_score)
    		{
    			arr[i + 1].m_rank = rank;
    
    			i++;
    			rankAdder++;
    		}
    
    		i++;
    		rank += rankAdder;
    	}
    
    	// sort by number
    	for (int i = 1; i < 10; i++)
    	{
    		for (int j = 0; j < 10 - i; j++)
    		{
    			if (arr[j].m_number > arr[j + 1].m_number)
    			{
    				Student temp{ arr[j] };
    				arr[j] = Student{ arr[j + 1] };
    				arr[j + 1] = temp;
    			}
    		}
    	}
    
    	std::cout << "Name Score Rank\n";
    	for (int i = 0; i < 10; i++)
    	{
    		std::cout << std::setw(4) << arr[i].m_name
    			<< std::setw(6) << arr[i].m_score
    			<< std::setw(5) << arr[i].m_rank << '\n';
    	}
    }

     

    Language_Code/파일입출력/자가진단4


    문제                                            

    공백을 포함한 문자열을 두 번 입력받아 길이가 작은 문자열과 긴 문자열의 순으로 출력하는 프로그램을 작성하시오.

    각 문자열의 길이는 100자를 넘지 않는다.

     

    * 표준입출력방식으로 작성하세요.

     

    입력 예                                        

    Love, like you've never been hurt.

    Live, like today is the lost day to live.

     

    출력 예                                        

    Love, like you've never been hurt.

    Live, like today is the lost day to live.


    BasicFileProcess04.h

    #include <iostream>
    #include <string>
    
    using std::string;

     

    BasicFileProcess04.cpp

    void BasicFileProcess04::Code()
    {
    	string str1, str2;
    
    	std::getline(std::cin, str1);
    	std::getline(std::cin, str2);
    
    	if (str1.size() < str2.size())
    	{
    		std::cout << str1 << '\n' << str2;
    	}
    	else
    	{
    		std::cout << str2 << '\n' << str1;
    	}
    }

     

    Language_Code/파일입출력/자가진단5


    문제                                            

    100이하의 정수 N을 입력받은 후 공백이 포함된 N행의 문장을 입력받아서 역순으로 출력하는 프로그램을 작성하시오.

    각 문장의 길이는 100이하이다.

     

    * 표준입출력방식으로 작성하세요.

     

    입력 예                                        

    3

    I love korea.

    My name is chulgi.

    I'm happy.

     

    출력 예                                        

    I'm happy.
    My name is chulgi.
    I love korea.


    BasicFileProcess05.h

    #include <iostream>
    #include <string>
    #include <limits>
    
    using std::string;

     

    BasicFileProcess05.cpp

    void BasicFileProcess05::Code()
    {
    	int n;
    
    	std::cin >> n;
    
    	string* arr = new string[n];
    
    	std::cin.clear();
    	std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    
    	for (int i = 0; i < n; i++)
    	{
    		std::getline(std::cin, arr[i]);
    	}
    
    	for (int i = n - 1; i >= 0; i--)
    	{
    		std::cout << arr[i] << '\n';
    	}
    
    	delete[] arr;
    }

     

    Language_Code/파일입출력/자가진단6


    문제                                            

    원의 둘레의 길이를 입력받아 반지름의 길이를 출력하는 프로그램을 작성하시오.

    단, 원주율은 3.14로 하고 출력은 소수 세째자리에서 반올림하여 둘째자리까지 출력 한다.

    둘레의 길이가 0 이면 종료한다.

     

    * 표준입출력방식으로 작성하세요.

     

    입력 예                                        

    31.4
    62.8
    0

     

    출력 예                                        

    5.00
    10.00

     

    Hint!

    원의 둘레(c) 공식은 다음과 같다
    c = 지름의 길이 * 원주율 = 2 * 반지름 * 원주율


    BasicFileProcess06.h

    #include <iostream>

     

    BasicFileProcess06.cpp

    void BasicFileProcess06::Code()
    {
    	const double PI = 3.14;
    
    	std::cout.precision(2);
    	std::cout.setf(std::ios::fixed);
    
    	double round;
    	while (true)
    	{
    		std::cin >> round;
    
    		if (round == 0)
    		{
    			break;
    		}
    
    		double radius{ round / (2 * PI) };
    
    		std::cout << radius << '\n';
    	}
    }

     

    NadanKim/CodingTest_JUNGOL: JUNGOL 코딩 테스트를 위한 저장소 (github.com)

     

    NadanKim/CodingTest_JUNGOL

    JUNGOL 코딩 테스트를 위한 저장소. Contribute to NadanKim/CodingTest_JUNGOL development by creating an account on GitHub.

    github.com

     

    댓글

Designed by Tistory.