1. 문제 링크

https://www.acmicpc.net/problem/2490

 

2490번: 윷놀이

우리나라 고유의 윷놀이는 네 개의 윷짝을 던져서 배(0)와 등(1)이 나오는 숫자를 세어 도, 개, 걸, 윷, 모를 결정한다. 네 개 윷짝을 던져서 나온 각 윷짝의 배 혹은 등 정보가 주어질 때 도(배 한 개, 등 세 개), 개(배 두 개, 등 두 개), 걸(배 세 개, 등 한 개), 윷(배 네 개), 모(등 네 개) 중 어떤 것인지를 결정하는 프로그램을 작성하라.

www.acmicpc.net

 

 

 

2. 문제 설명

총 12개의 숫자를 입력받아 계산 후 출력하는 문제입니다.

 

 

 

3. 소스코드

BOJ 2490번 윷놀이 C++ 풀이입니다.

#include <iostream>
using namespace std;

int main(void)
{
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);

	for (int i = 0; i < 3; i++) {
		int sum = 0, temp;
		for (int j = 0; j < 4; j++) cin >> temp, sum += temp;
		if (sum == 0) cout << 'D';
		else if (sum == 1) cout << 'C';
		else if (sum == 2) cout << 'B';
		else if (sum == 3) cout << 'A';
		else if (sum == 4) cout << 'E';
		cout << '\n';
	}

	return 0;
}

11번 라인의 for문을 이용해 4번씩 돌면서 temp에 입력받은 값을 sum에 누적시킨 후,

아래 if ~ else if문을 이용해 문제에서 주어진대로 출력하는 과정을 3번 반복하면 됩니다.

 

 

 

#include <iostream>
#include <vector>
#include <numeric>
using namespace std;

int main(void)
{
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);

	int sum;
	vector<int> v(4);

	for (int i = 0; i < 3; i++) {
		cin >> v[0] >> v[1] >> v[2] >> v[3];
		sum = accumulate(v.begin(), v.end(), 0);
		if (sum == 0) cout << 'D';
		else if (sum == 1) cout << 'C';
		else if (sum == 2) cout << 'B';
		else if (sum == 3) cout << 'A';
		else if (sum == 4) cout << 'E';
		cout << '\n';
	}

	return 0;
}

vector를 이용해서 4개씩 숫자를 받고, accumulate함수를 이용해서 sum을 구한 후 결과를 출력해도 됩니다.

accumulate함수를 사용하기 위해서는 <numeric> 헤더를 include해야합니다.

accumulate함수의 사용법은 accumulate(시작 지점, 끝 지점, 초기값)입니다. 

'Algorithm > Study' 카테고리의 다른 글

[백준 2576번 C++] 홀수  (0) 2020.04.29
[백준 2562번 C++] 최댓값  (0) 2020.04.29
[백준 2480번 C++] 주사위 세개  (0) 2020.04.29
[백준 2753번 C++] 윤년  (0) 2020.04.29
[백준 2752번 C++] 세수정렬  (0) 2020.04.28

1. 문제 링크

https://www.acmicpc.net/problem/2480

 

2480번: 주사위 세개

1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다.  같은 눈이 3개가 나오면 10,000원+(같은 눈)*1,000원의 상금을 받게 된다.  같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)*100원의 상금을 받게 된다.  모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)*100원의 상금을 받게 된다.   예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3*100으로 계

www.acmicpc.net

 

 

 

2. 문제 설명

세개의 값을 입력받은 후 규칙에 따라 계산하여 출력하는 문제입니다.

 

 

 

3. 소스코드

BOJ 2480번 주사위 세개 C++ 풀이입니다.

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main(void)
{
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);

	vector<int> v(3);
	cin >> v[0] >> v[1] >> v[2];

	sort(v.begin(), v.end());
	if (v[0] == v[1] && v[1] == v[2]) cout << 10000 + (v[0] * 1000);
	else if (v[0] == v[1]) cout << 1000 + (v[0] * 100);
	else if (v[0] == v[2]) cout << 1000 + (v[0] * 100);
	else if (v[1] == v[2]) cout << 1000 + (v[1] * 100);
	else cout << v[2] * 100;

	return 0;
}

세개의 값 중 최댓값을 사용해야하는 경우가 있어서 vector에 입력받아 sort함수로 정렬 후 계산했습니다.

 

 

 

#include <iostream>
using namespace std;

int main(void)
{
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);

	int a, b, c;
	cin >> a >> b >> c;

	if (a == b && b == c)
	else if (a == b) cout << 1000 + (a * 100);
	else if (b == c) cout << 1000 + (b * 100);
	else if (a == c) cout << 1000 + (a * 100);
	else if (a > b ?
    		(a > c ? out << a * 100 : cout << c * 100)
    		: (b > c ? cout << b * 100 : cout << c * 100))
 /*
	else if (a > b && a > c) cout << a * 100;
	else if (b > a && b > c) cout << b * 100;
	else if (c > a && c > b) cout << c * 100;
*/

	return 0;
}

굳이 vector를 사용하기 싫으시면 위의 코드와 같이 풀어도 됩니다.

마지막 else if문에 최댓값을 찾기 위해 삼항연산자를 사용하였는데 이를 풀어 쓰면 아래 주석 처리한 3줄과 동일합니다.

'Algorithm > Study' 카테고리의 다른 글

[백준 2562번 C++] 최댓값  (0) 2020.04.29
[백준 2490번 C++] 윷놀이  (0) 2020.04.29
[백준 2753번 C++] 윤년  (0) 2020.04.29
[백준 2752번 C++] 세수정렬  (0) 2020.04.28
[백준 9498번 C++] 시험 성적  (0) 2020.04.28

1. 문제 링크

https://www.acmicpc.net/problem/2753

 

2753번: 윤년

연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다.

www.acmicpc.net

 

 

 

2. 문제 설명

연도를 입력받아 윤년이면 1, 아니면 0을 출력하는 문제입니다.

 

 

 

3. 소스코드

BOJ 2753번 윤년 C++ 풀이입니다.

#include <iostream>
using namespace std;

int main(void)
{
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);

	int year;
	cin >> year;

	if ((year % 4 == 0 && year % 100 != 0)
		|| year % 400 == 0) cout << 1;
	else cout << 0;

	return 0;
}

if문 안에서 &&와 ||을 적절히 사용하면 됩니다.

참고로 이 문제에서는 신경쓰지 않아도 되지만 &&가 ||보다 우선순위가 높습니다.

'Algorithm > Study' 카테고리의 다른 글

[백준 2490번 C++] 윷놀이  (0) 2020.04.29
[백준 2480번 C++] 주사위 세개  (0) 2020.04.29
[백준 2752번 C++] 세수정렬  (0) 2020.04.28
[백준 9498번 C++] 시험 성적  (0) 2020.04.28
[백준 10869번 C++] 사칙연산  (0) 2020.04.28

1. 문제 링크

https://www.acmicpc.net/problem/2752

 

2752번: 세수정렬

숫자 세 개가 주어진다. 이 숫자는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 숫자는 모두 다르다.

www.acmicpc.net

 

 

 

2. 문제 설명

세 수를 입력받아서 정렬 후 출력하는 문제입니다.

 

 

 

3. 소스코드

BOJ 2752번 세수정렬 C++ 풀이입니다.

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main(void)
{
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);

	vector<int> v(3);
	cin >> v[0] >> v[1] >> v[2];

	sort(v.begin(), v.end());
	cout << v[0] << ' ' << v[1] << ' ' << v[2];

	return 0;
}

vector를 사용하기 위해서는 <vector> 헤더 파일을 include 해줘야 합니다.

vector의 사용법은 vector<자료형> 변수명(크기) 입니다.

sort함수를 사용하기 위해서는 <algorithm> 헤더 파일을 include 해줘야 합니다.

sort함수의 사용법은 sort(시작 지점, 끝 지점) 입니다.

시작 지점을 포함하고, 끝 지점을 포함하지 않는 범위까지 오름차순으로 정렬을 해줍니다.

vector를 sort함수에 사용하는 경우 v.begin()v.end()를 사용할 수 있습니다.

'Algorithm > Study' 카테고리의 다른 글

[백준 2480번 C++] 주사위 세개  (0) 2020.04.29
[백준 2753번 C++] 윤년  (0) 2020.04.29
[백준 9498번 C++] 시험 성적  (0) 2020.04.28
[백준 10869번 C++] 사칙연산  (0) 2020.04.28
[백준 10171번 C++] 고양이  (0) 2020.04.28

1. 문제 링크

https://www.acmicpc.net/problem/9498

 

9498번: 시험 성적

시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

 

 

2. 문제 설명

if ~ else if ~ else문을 이용하면 됩니다.

 

 

 

3. 소스코드

BOJ 9498번 시험 성적 C++ 풀이입니다.

#include <iostream>
using namespace std;

int main(void)
{
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);

	int score;
	cin >> score;

	if (score >= 90) cout << 'A';
	else if (score >= 80) cout << 'B';
	else if (score >= 70) cout << 'C';
	else if (score >= 60) cout << 'D';
	else cout << 'F';

	return 0;
}

 

'Algorithm > Study' 카테고리의 다른 글

[백준 2753번 C++] 윤년  (0) 2020.04.29
[백준 2752번 C++] 세수정렬  (0) 2020.04.28
[백준 10869번 C++] 사칙연산  (0) 2020.04.28
[백준 10171번 C++] 고양이  (0) 2020.04.28
[백준 2557번 C++] Hello World  (0) 2020.04.28

1. 문제 링크

https://www.acmicpc.net/problem/10869

 

10869번: 사칙연산

두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. 

www.acmicpc.net

 

 

 

2. 문제 설명

두 자연수 A와 B를 입력받은 후, A + B, A - B, A * B, A / B, A % B를 출력하는 문제입니다. B가 자연수이므로 0으로 나누는 경우는 생각하지 않아도 됩니다.

 

 

 

3. 소스코드

BOJ 10869번 사칙연산 C++ 풀이입니다.

#include <iostream>
using namespace std;

int main(void)
{
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);

	int A, B;
	cin >> A >> B;

	cout << A + B << '\n';
	cout << A - B << '\n';
	cout << A * B << '\n';
	cout << A / B << '\n';
	cout << A % B;

	return 0;
}

 

cout에서 endl은 '\n'을 출력하고 flush를 하기 때문에 그냥 '\n'을 출력하는 것이 더 빠릅니다.

'Algorithm > Study' 카테고리의 다른 글

[백준 2752번 C++] 세수정렬  (0) 2020.04.28
[백준 9498번 C++] 시험 성적  (0) 2020.04.28
[백준 10171번 C++] 고양이  (0) 2020.04.28
[백준 2557번 C++] Hello World  (0) 2020.04.28
[백준 1000번 C++] A+B  (0) 2020.04.27

1. 문제 링크

https://www.acmicpc.net/problem/10171

 

10171번: 고양이

문제 아래 예제와 같이 고양이를 출력하시오. 입력 출력 고양이를 출력한다. 예제 입력 1 복사 예제 출력 1 복사 \ /\ ) ( ') ( / ) \(__)|...

www.acmicpc.net

 

 

 

2. 문제 설명

고양이를 출력하는 문제입니다. \를 출력하려면 \\라고 써야 합니다.

 

 

 

3. 소스코드

BOJ 10171번 고양이 C++ 풀이입니다.

#include <iostream>
using namespace std;

int main(void)
{
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);

	cout << "\\    /\\\n";
	cout << " )  ( ')\n";
	cout << "(  /  )\n";
	cout << " \\(__)|";

	return 0;
}

이 문제에서 6, 7번 라인은 당연히 생략해도 됩니다. 저는 익숙해지기 위해서 사용했습니다. 

'Algorithm > Study' 카테고리의 다른 글

[백준 2752번 C++] 세수정렬  (0) 2020.04.28
[백준 9498번 C++] 시험 성적  (0) 2020.04.28
[백준 10869번 C++] 사칙연산  (0) 2020.04.28
[백준 2557번 C++] Hello World  (0) 2020.04.28
[백준 1000번 C++] A+B  (0) 2020.04.27

1. 문제 링크

https://www.acmicpc.net/problem/2557

 

2557번: Hello World

Hello World!를 출력하시오.

www.acmicpc.net

 

 

 

2. 문제 설명

"Hello World!"를 출력하는 문제입니다. 마지막에 !가 있다는 것에 주의해야 합니다.

 

 

 

3. 소스코드

BOJ 2557번 Hello World C++ 풀이입니다.

#include <iostream>
using namespace std;

int main(void)
{
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);

	cout << "Hello World!";

	return 0;
}

이 문제에서 6, 7번 라인은 당연히 생략해도 됩니다. 저는 익숙해지기 위해서 사용했습니다. 

'Algorithm > Study' 카테고리의 다른 글

[백준 2752번 C++] 세수정렬  (0) 2020.04.28
[백준 9498번 C++] 시험 성적  (0) 2020.04.28
[백준 10869번 C++] 사칙연산  (0) 2020.04.28
[백준 10171번 C++] 고양이  (0) 2020.04.28
[백준 1000번 C++] A+B  (0) 2020.04.27

1. 문제 링크

https://www.acmicpc.net/problem/1000

 

1000번: A+B

문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A+B를 출력한다. 예제 입력 1 복사 1 2 예제 출력 1 복사 3 힌트 여기를 누르면 1000번 예제 소스를 볼 수 있습니다....

www.acmicpc.net

 

 

 

2. 문제 설명

A와 B를 입력받은 후, A + B를 출력하는 문제입니다.

 

 

 

3. 소스코드

BOJ 1000번 A+B C++ 풀이입니다.

#include <iostream>
using namespace std;

int main(void)
{
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);

	int A, B;
	cin >> A >> B;

	cout << A + B;

	return 0;
}

이 문제에서 6, 7번 라인은 당연히 생략해도 됩니다. 저는 익숙해지기 위해서 사용했습니다. 

'Algorithm > Study' 카테고리의 다른 글

[백준 2752번 C++] 세수정렬  (0) 2020.04.28
[백준 9498번 C++] 시험 성적  (0) 2020.04.28
[백준 10869번 C++] 사칙연산  (0) 2020.04.28
[백준 10171번 C++] 고양이  (0) 2020.04.28
[백준 2557번 C++] Hello World  (0) 2020.04.28

+ Recent posts