천천히 빛나는

백준 단계 2 : 조건문 (C++) 본문

C++/BAEKJOON (C++)

백준 단계 2 : 조건문 (C++)

까만콩 •ᴥ• 2023. 8. 14. 16:13

1330. 두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오.

#include <iostream>
using namespace std;
int main() {
    int a, b;
    cin >> a >> b;
    if (a > b) {
        cout << ">";
    }
    else if (a < b) {
        cout << "<";
    }
    else {
        cout << "==";
    }
    return 0;
}

if - else if - else 순서로 작성한다

 

 

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

#include <iostream>
using namespace std;
int main() {
	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;
}

score <= 100 && score >=90과 같이 쓰지 않아도 된다. 첫번째 조건부터 실행되기 때문이다.

 

 

2753. 첫째 줄에 윤년이면 1, 아니면 0을 출력한다.

#include <iostream>
using namespace std;
int main() {
	int year;
	cin >> year;
	if ((year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0))) {
		cout << "1";
	}
	else {
		cout<< "0";
	}
}

&& : and

|| : or

 

 

14681. 점 (x, y)의 사분면 번호(1, 2, 3, 4 중 하나)를 출력한다.

#include <iostream>
using namespace std;
int main() {
	int x, y;
	cin >> x >> y;
	if ((x > 0) && (y > 0)) {
		cout << "1" << endl;
	}
	else if ((x < 0) && (y > 0)) {
		cout << "2" << endl;
	}
	else if ((x < 0) && (y < 0)) {
		cout << "3" << endl;
	}
	else {
		cout << "4" << endl;
	}
}

cout << "1";이 아니라 cout << 1과 같이 작성해도 된다.

 

cout << (x>0 ? (y>0 ? 1 : 4) : (y>0 ? 2 : 3));

방법 1의 조건을 삼항 연산자로 작성할 수도 있다.

조건식 ? True 반환값 : False 반환값

 

 

2884. 상근이가 설정한 알람 시각이 주어졌을 때, 창영이의 방법을 사용한다면, 이를 언제로 고쳐야 하는지 구하는 프로그램을 작성하시오.

#include <iostream>
using namespace std;
int main() {
	int h, m;
	cin >> h >> m;
	m -= 45;
	while (m < 0) {
		m += 60;
		h -= 1;
		if (h < 0) {
			h = 23;
		}
	}
	cout << h << " " << m;
	return 0;
}

이 문제에서는 45분만 당기는 거라서 while을 설정해주지 않아도 무관하다. 만약 while을 사용하지 않으면 if문으로 묶어주면 된다. while로 왜 했냐면 그냥 하고 싶어서... 나중에 45분이 아닌 129분이 나와도 동작하게 만들기 위해서 이다.

 

 

2525. 훈제오리구이를 시작하는 시각과 오븐구이를 하는 데 필요한 시간이 분단위로 주어졌을 때, 오븐구이가 끝나는 시각을 계산하는 프로그램을 작성하시오.

#include <iostream>
using namespace std;
int main() {
	int a, b, c;
	cin >> a >> b >> c;
	a += c / 60;
	b += c % 60;
	if (b >= 60) {
		b -= 60;
		a += 1;
	}	
	if (a >= 24) {
		a -= 24;
	}
	cout << a << " " << b;
	return 0;
}

아니면 a, b를 이용해서 모두 분 단위로 바꾸어주고 c를 더한 후 출력하는 방법도 있다

 

 

2480. 3개 주사위의 나온 눈이 주어질 때, 상금을 계산하는 프로그램을 작성 하시오.

#include <iostream>
using namespace std;
int main() {
	int i, j, k;
	int m;
	cin >> i >> j >> k;

	if ((i == j) && (j == k)) {
		m = 10000 + i * 1000;
	}
	else if ((i==j) || (i==k)) {
		m = 1000 + i * 100;
	}
	else if (j == k) {
		m = 1000 + j * 100;
	}
	else {
		m = max(max(i, j),k) * 100;
	}
	cout << m;
	return 0;
}

혹은 <algorithm>을 #include 하여 m = max({i,j,k})*100;과 같이 max 함수를 사용할 수도 있다.