백준(baekjoon)-C++ 정리

SUIN·2022년 5월 2일
0

백준/프로그래머스

목록 보기
7/18
post-thumbnail

5575 타임 카드

#include <iostream>
#include <math.h>
using namespace std;

int main() {
    int h[3], m[3], s[3], hout,mout,sout;

    for (int i = 0; i < 3; i++) {
        cin >> h[i] >> m[i] >> s[i];
        cin >> hout >> mout >> sout;
        h[i] = hout - h[i];
        m[i] = mout - m[i];
        s[i] = sout - s[i];
        if (s[i] < 0) {
            s[i] += 60;
            m[i]--;
        }
        if (m[i] < 0) {
            m[i] += 60;
            h[i]--;
        }

    }

    for (int i = 0; i < 3; i++) {
        cout << h[i]<<" " << m[i]<< " " << s[i]<<endl;
    }

    return 0;
}

시간, 분, 초의 배열을 각각 만들어서 a,b,c씨의 출근시간들을 각각 입력받고, 퇴근 시간을 따로 입력받은 후, 둘을 뺄셈하여 저장(총 일한시간)
-> 이 때, 초와 분의 뺄셈하여 나온 값이 0보다 작은 경우에는 60을 더한 후에, 초인 경우에는 분에 -1, 분인 경우에는 시간에 -1
결과 출력


5596 시험 점수

#include <iostream>

using namespace std;
int suin(int result) {
	int a;
	for (int i = 0; i < 4; i++) {
		cin >> a;
		result += a;
	}
	return result;
}


int main() {
	int s=0, t=0;
	s = suin(s);
	t = suin(t);
	if (s >= t)
		cout << s;
	else
		cout << t;
	return 0;
}

입력받은 값을 더한 총합을 비교하여 큰 값을 출력


7568 덩치


#include <iostream>

using namespace std;

void countt(int number, int count[50]) {
	
	int height[50], weight[50];
	for (int i = 0; i < number; i++) {
		cin >> weight[i] >> height[i];
	}
	
	for (int j = 0; j < number; j++) {
		for (int i = 0; i < number; i++) {
			if (weight[j] < weight[i] && height[j] < height[i])
				count[j]++;
			else if (weight[j] == weight[i] && height[j] < height[i])
				count[j]++;
			else if (weight[j] < weight[i] && height[j] == height[i])
				count[j]++;
		}
	}
}

void result(int number, int count[50]) {
	int result[50];
    
	for (int j = 0; j < number; j++) {
		result[j] = 1;
		for (int i = 0; i < number; i++) {
			if (count[j] > count[i])
				result[j]++;
		}
	}

	for (int j = 0; j < number; j++)
		cout << result[j]<<" ";
}


int main() {
	int number, count[50]={0,};
	cin >> number;

	countt(number,count);
	result(number, count);
	return 0;

}

입력+비교함수
최대 50명의 키와 몸무게를 저장할 수 있도록 배열 2개 선언
지정된 개수만큼 키와 몸무게를 배열에 입력받는다.
중첩 for문을 이용하여 몸무게와 키의 우열을 가리고,작은 사람의
결과 함수
count에 저장된 숫자가 가장 큰 순서대로 정렬
(정렬 전은 1로 먼저 선언해두고, 다른 사람들과 숫자를 비교해가면서, 숫자가 작을 때마다 1씩 순위가 뒤로 밀림
출력
main함수에서 입력+비교함수와 결과함수를 호출

-->결과: 틀렸슴. 아직도 왜 틀렸는지 모르는 나는 바보.

#include <iostream>
#include <utility>

using namespace std;

int main() {
    int num;
    pair<int,int> arr[50];
    cin >> num;
    for(int i = 0; i < num; i++)
        cin >> arr[i].first >> arr[i].second;
    for(int i = 0; i < num; i++)
    {
        int rank = 1;
        for(int j = 0; j < num; j++)
            if(arr[i].first < arr[j].first && arr[i].second < arr[j].second)
                rank++;
        cout << rank << ' ';
    }
}

utility라이브러리: 두 개의 타입을 하나로 묶어줄 수 있게 돕는다.
(#include < algorithm >과 #include< vector > 헤더파일에는 이미 utility 헤더파일이 포함되어 있다!)

pair 클래스: 사용자가 지정한 2개의 타입의 데이터를 묶어서 저장해준다.
구조체처럼 사용할 수 있지만, 구조체보다 간단하고 편리하다는 장점이 있음!

사용법: pair<타입1,타입2> 선언할 이름(배열도 가능);
이름.first 이름.seconf로 호출

개수만큼 arr의 first와 second에 키와 몸무게를 저장.
반복문 중첩으로 먼저 순위를 1로 초기화하고, 키와 몸무게를 비교, 키와 몸무게가 모두 작은 경우에만 순위를 뒤로 미루고 출력


9655 돌 게임

#include <iostream>

using namespace std;

int main(){
    int stone;
    string a;
    cin>>stone;
    a=(stone%2==0)? "CY":"SK";
    cout<<a;
    return 0;
}

돌의 개수가 짝수인경우: 창영(cy)의 승리, 홀수인 경우: 상근(sk)의 승리
-> 가져갈 수 있는 돌의 개수는 1,3개로 홀수개이므로, 매번 창영의 턴이 끝날 때에는 가져간 돌의 총 개수가 짝수이고, 상근의 턴이 끝날 때에는 홀수이다.
삼항연산자를 이용하여 짝수의 여부에 따라 결과를 출력


10039 평균 점수

#include <iostream>

using namespace std;

int main() {
	int a, avg = 0;
	for (int i = 0; i < 5; i++) {
		cin >> a;
		if (a < 40)
			a = 40;
		avg += a;
	}
	cout << avg / 5;

}

입력받은 점수가 40점 미만인지 확인하고 그렇다면 40으로 변경, 총 5개의 값을 avg에 더해서 저장
5로 나누어 평균을 출력


오늘의 tmi: 4월이 끝났다!! 이럴수가 머했다고 5월인지.. 4월은.. 딱히 놀았다고 하기도 뭐하고 그렇다고 공부를 했다기에도 애매~한 달이었던 것 같다.
4월 가장 큰 변화는 내가 알바를 전부 그만두었다는 건데, 그만둔 이유는 질리기도 했고, 내가 공부해야하는 양이 어마어마하다는 걸 깨달아버렸기 때문이다.
앱으로 공부할 예정이면 앱 개발도 공부해봐야하고, 그만큼 자바스크립트나 스위프트같은 언어 공부도 해봐야 할 것이고, 알고리즘도 틈틈히 공부해야 할 것 같다..
5월달은 정말로 열심히 공부해야지!!..라고 하기에는 놀 계획을 너무 많이 세워버렸는데.. 음.. 그래.. 공부도 열심히 해야겠다..!
5월달은 공부도 그렇고 여러모로 참 다사다난할 것 같다.

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

0개의 댓글