일지

JUNGOL...37

niamdank 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