210104 | 백준 2588, 2884, 4344, 10430, 14681 | C++

박나연·2021년 1월 4일
0

하루백준

목록 보기
1/20
post-thumbnail
post-custom-banner

방학동안 백준 사이트에서 문제 > 단계별로 풀기 순서대로 매일 풀어보기로 마음먹었다. 쉬운문제부터 시작해서 부담없이 시작하면 꽤 큰 성과를 거둘거 같다!


2588

백준 2588번 : 곱셈

#include <iostream>
using namespace std;

int main() {
	int first, second;

	cin >> first;
	cin >> second;

	cout << first * (second % 10) << endl;
	cout << first * ((second / 10) % 10) << endl;
	cout << first * (second / 100) << endl;
	cout << first * second << endl;
}

2884

백준 2884 : 알람시계

#include <iostream>
using namespace std;

int main() {
	int hour, minute;
	cin >> hour >> minute;

	int rhour, rminute;

	rminute = minute - 45;
	if (rminute < 0) {
		rminute = 60 + rminute;
		rhour = hour - 1;
		if (rhour < 0) {
			rhour = 23;
		}
	}
	else {
		rhour = hour;
	}
	cout << rhour << " " << rminute;
}

4344

백준 4344번 : 평균은 넘겠지

첫번째 접근

한번에 모든 케이스와 점수들을 입력하여 한번에 출력을 해야하는 것인줄 알고 for문을 두번사용하고 벡터를 추가로 만들어 접근하였다. 그렇게 하니 너무 복잡하고 뜻대로 되지 않아 한줄씩 입력하여 출력받도록 구현하니 맞출 수 있었다.

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

int main() {
	int c;
	vector<int> number;
	int sum = 0;
	cin >> c;
	vector<float> average(c);
	float rate;
	
	vector<int> score;
	for (int i = 0; i < c; i++) {
		number.resize(i);
		cin >> number[i];
		score.resize(number[i]);
		sum = 0;
		for (int j = 0; j < number[i]; j++) {
			cin >> score[j];
			sum += score[j];
			cout << sum << endl;
		}
		average[i] = sum / float(number[i]);
		cout << average[i] << endl;
	}

	int count;
	for (int k = 0; k < c; k++) {
		cout << " fkf" << endl;
		count = 0;
		for (int n = 0; n < sizeof(score[k]); n++) {
			if (average[k] < score[n]) {
				count++;
			}
		}
		rate = float(count / number[k]);
		cout << round(rate * 1000) / 1000 << endl;
	}
}

최종

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

int main() {
	int c,number;
	int sum;
	cin >> c;
	double average, rate;

	for (int i = 0; i < c; i++) {
		sum = 0;
		cin >> number;
		vector<int> score(number);

		for (int j = 0; j < number; j++) {
			cin >> score[j];
			sum += score[j];
		}

		average = sum / number;

		int count = 0;
		for (int k = 0; k < number; k++)
			if (average < score[k])
				count++;
		rate = (float)count/number * 100;

		cout.precision(3);
		cout << fixed << rate << "%" << endl;
	}
}

cout.precision(3)
소수점 3자리 수까지

cout << fixed
소수점 자릿수 고정

10430

백준 10430번 : 나머지

#include <iostream>
using namespace std;

int main() {
	int a, b, c;
	cin >> a >> b >> c;

	cout << (a + b) % c << endl;
	cout << ((a % c) + (b % c)) % c << endl;
	cout << (a * b) % c << endl;
	cout << ((a % c) * (b % c)) % c << endl;
}

14681

백준 14681번 : 사분면 고르기

#include <iostream>
using namespace std;

int main() {
	int x, y;
	cin >> x >> y;
	if (x > 0 && y > 0) {
		cout << 1;
	}
	else if (x < 0 && y > 0) {
		cout << 2;
	}
	else if (x < 0 && y < 0) {
		cout << 3;
	}
	else {
		cout << 4;
	}
}



profile
Data Science / Computer Vision
post-custom-banner

0개의 댓글