초보 개발자의 이야기, 릿허브

[📗백준(BOJ)] 2. if문 문제풀이 & 정답 본문

코딩테스트/📝 단계별 문제 모아보기

[📗백준(BOJ)] 2. if문 문제풀이 & 정답

릿99 2022. 1. 20. 21:51
728x90
반응형
📗 백준(BOJ)
2. if문

https://www.acmicpc.net/step/4

 

if문 단계

점이 어느 사분면에 있는지 알아내는 문제

www.acmicpc.net

 


 

 

문제풀이 & 정답

 

 최근 수정 (2022.02.17)

백준에서 수시로 문제를 추가해서, 풀이가 없는 문제가 간혹 있을 수 있습니다.

수시로 확인 후 풀이 업로드 예정입니다. 필요한 문제나 오류는 댓글 남겨주시면 감사하겠습니다.😊

 

❗ C/C++로 풀이했으며, 모든 문제에 대해 풀이방법을 제공하지는 않습니다.

각 문제에 대한 풀이방법은 여러가지가 있을 수 있으며, 해당 방법이 최선의 풀이방법이라고는 할 수 없습니다.

문제에 대한 질문, 지적이나 오류는 언제나 환영입니다.😊

 


 

1. 1330번 두 수 비교하기

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

 

1330번: 두 수 비교하기

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

www.acmicpc.net

 

<정답>

#include <iostream>
using namespace std;

int main() {
	int A, B;

	cin >> A >> B;
	if (A > B) {
		cout << ">";
	}
	else if (A < B) {
		cout << "<";
	}
	else if (A == B) {
		cout << "==";
	}

	return 0;
}

 

 

 

2. 9498번 시험 성적

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

 

9498번: 시험 성적

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

www.acmicpc.net

 

<정답>

#include <iostream>
using namespace std;

int main() {
	int score;

	cin >> score;
	if (score >= 90 && score <= 100) {
		cout << "A";
	}
	else if (score >= 80 && score <= 89) {
		cout << "B";
	}
	else if (score >= 70 && score <= 79) {
		cout << "C";
	}
	else if (score >= 60 && score <= 69) {
		cout << "D";
	}
	else {
		cout << "F";
	}

	return 0;
}

 

 

 

3. 2753번 윤년

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

 

2753번: 윤년

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

www.acmicpc.net

 

<정답>

#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";
	}

	return 0;
}

 

 

 

4. 14681번 사분면 고르기

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

 

14681번: 사분면 고르기

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

www.acmicpc.net

 

<정답>

#include <iostream>
using namespace std;

int main() {
	int x, y;

	cin >> x >> y;
    // 1사분면
	if (x >= 0 && y >= 0) {
		cout << "1";
	}
    // 2사분면
	else if (x <= 0 && y >= 0) {
		cout << "2";
	}
    // 3사분면
	else if (x <= 0 && y <= 0) {
		cout << "3";
	}
    // 4사분면
	else if (x >= 0 && y <= 0) {
		cout << "4";
	}

	return 0;
}

 

 

 

5. 2884번 알람시계

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

 

2884번: 알람 시계

상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만,

www.acmicpc.net

 

<정답>

#include <iostream>
using namespace std;

int main() {
	int hour, minute;

	cin >> hour >> minute;
	if (minute - 45 < 0) {
		if (hour == 0) {
			hour = 23;
			minute = 60 - (45 - minute);
		}
		else {
			hour = hour - 1;
			minute = 60 - (45 - minute);
		}
	}
	else {
		minute = minute - 45;
	}

	cout << hour << " " << minute;

	return 0;
}

 

<풀이>

https://beginnerdeveloper-lit.tistory.com/115?category=987352 

 

[C++] 백준 2884번 알람 시계

1. 문제이해 https://www.acmicpc.net/problem/2884 2884번: 알람 시계 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를

beginnerdeveloper-lit.tistory.com

 

 

 

6. 오븐시계

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

 

2525번: 오븐 시계

첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.)

www.acmicpc.net

 

<정답>

#include <iostream>
using namespace std;

int main() {
	int hour, minute;       // 입력받은 시간, 분
	int cost;               // 소요시간
	int fin_hour, fin_min;  // 완료 시간, 분

	cin >> hour >> minute;
	cin >> cost;

	fin_min = minute + cost;
	fin_hour = hour;

	if (fin_min >= 60) {

		while (fin_min >= 60) {
			fin_min -= 60;
			fin_hour++;
		}

		if (fin_hour >= 24) {
			fin_hour -= 24;
		}

	}

	cout << fin_hour << " " << fin_min;

}

 

 

 

7. 주사위 세개

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

 

2480번: 주사위 세개

1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다.  같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다.  같은 눈이 2개

www.acmicpc.net

 

<정답>

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

int main() {
	int one, two, three;
	int reward = 0;
	int max_num;

	cin >> one >> two >> three;

	// 1. 같은 눈이 3개 나오는 경우
	if ((one == two) && (two == three)) {
		reward = 10000 + (one * 1000);
	}

	// 2. 같은 눈이 2개 나오는 경우
	else if ((one == two && one != three) || (one == three && one != two) 
		  || (two == three && two != one)) {
		// 2 - 1. 1, 2번째 주사위가 같은 눈
		if (one == two && one != three) {
			reward = 1000 + (one * 100);
		}
		// 2 - 2. 1, 3번째 주사위가 같은 눈
		else if (one == three && one != two) {
			reward = 1000 + (one * 100);
		}
		// 2 - 3. 2, 3번째 주사위가 같은 눈
		else if (two == three && two != one) {
			reward = 1000 + (two * 100);
		}
	}

	// 3. 모두 다른 눈이 나오는 경우
	else {
		max_num = max(one, max(two, three));
		reward = max_num * 100;
	}

	cout << reward;

	return 0;
}

 

 

 

 

 

728x90
반응형