#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
결과 출력
#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;
}
입력받은 값을 더한 총합을 비교하여 큰 값을 출력
#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로 초기화하고, 키와 몸무게를 비교, 키와 몸무게가 모두 작은 경우에만 순위를 뒤로 미루고 출력
#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개로 홀수개이므로, 매번 창영의 턴이 끝날 때에는 가져간 돌의 총 개수가 짝수이고, 상근의 턴이 끝날 때에는 홀수이다.
삼항연산자를 이용하여 짝수의 여부에 따라 결과를 출력
#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월달은 공부도 그렇고 여러모로 참 다사다난할 것 같다.