백준(baekjoon)-C++ 정리

SUIN·2022년 5월 6일
0

백준/프로그래머스

목록 보기
13/18
post-thumbnail

16431 베시와 데이지

#include <iostream>
#include <math.h>

using namespace std;

int main() {
	int b[2], d[2], j[2], bmove=0, dmove=0;
	cin >> b[0] >> b[1];
	cin >> d[0] >> d[1];
	cin >> j[0] >> j[1];

	dmove = fabs(j[0] - d[0]) + fabs(j[1] - d[1]);
	bmove = max(fabs(j[0] - b[0]), fabs(j[1] - b[1]));
	if (dmove > bmove)
		cout << "bessie";
	else if (dmove < bmove)
		cout << "daisy";
	else if(dmove==bmove)
		cout << "tie";

	return 0;
}
  • fabs(): 절댓값(=abs)반환

데이지는 가로로 이동한 수+세로로 이동한 수, 베시는 대각선으로 가로,세로 동시에 이동이 가능하므로 가로와 세로중에 어느 방향이 더 차이가 큰지를 비교하여 큰 값.
총 이동거리를 비교하여 결과를 출력


16486 운동장 한 바퀴

#include <iostream>
#define pi 3.141592;
using namespace std;

int main() {
	int d1, d2;
	double result;

	cin >> d1 >> d2;
	result = (d1 * 2) + (d2+d2)*pi;
	printf("%.6lf", result);
	return 0;
}

d1의 가로의 길이 2개+ 반원 영역 * 2이므로 반지름이 d2인 원의 둘레
소수점 6자리까지 출력


17362 수학은 체육과목 입니다 2

#include <iostream>

using namespace std;

int main(void) {
	int inp, result;
	cin >> inp;
	result = inp % 8;
	if (result == 1)
		cout << 1;
	else if (result == 2 || result == 0)
		cout << 2;
	else if (result == 3 || result == 7)
		cout << 3;
	else if (result == 4 || result == 6)
		cout << 4;
	else
		cout << 5;

	return 0;
}

반복되는 주기=8회, 8회마다 엄지손가락부터 새끼손가락을 찍고 다시 엄지손가락으로 오는 과정을 반복.
따라서 숫자를 8로 나눈 나머지의 값이 얼마인지에 따라서 몇번째 손가락인지 판단하고 출력


17388 와글와글 숭고한

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

int main(void) {
	int s, k, h, result;
	cin >> s >> k >> h;
	if (s + k + h >= 100)
		cout << "OK";
	else {
		result = min({ s, k, h });
		if (result == s)
			cout << "Soongsil";
		else if (result == k)
			cout << "Korea";
		else
			cout << "Hanyang";
	}

	return 0;
}

세 학교의 참여도 합이 100이 넘을 경우에는 통과, 아닐 경우에는 최솟값을 찾아서 결과에 저장하고, 학교 이름을 출력
+이전에는 3개 이상의 값의 최소, 최대를 구분할 때, min, max함수를 중복하여 사용했는데, 위처럼 {}로 묶어서 비교를 하면 가능한 것 같다..


19698 헛간 청약

#include <iostream>

using namespace std;

int main(void) {
	int n, w, h, l, result;
	cin >> n >> w >> h >> l;
	result = (w / l) * (h / l);
	if (n < result)
		result = n;
	cout << result;

	return 0;
}

가로로 나누고 나머지, 세로로 나누고 나머지. 두 값을 곱하여 총 나눠줄 수 있는 공간의 개수를 구함. (만약 그 수가 소들의 수보다 많으면, 공간의 개수대신 소의 수를 결과로 저장)
출력


profile
공부하기싫을때붙잡고공부해봤자비명밖에안나옵니다지금제가그래요

0개의 댓글