daramG 2022. 3. 23. 21:27

2525번 문제 : 오븐 시계

문제 :

 

소스 코드 :

#include <cstdio>
using namespace std;

int main() {
    int h, m, c;
    scanf("%d %d", &h, &m);
    scanf("%d", &c);
    // c >= 60 : 시분나눠담기
    // 결과 h나 m 넘을경우 바로잡기  
    if (c >= 60) {
        h = h + (c / 60);
        m = m + (c % 60);
    }
    else {
        m = m + c;
    }
    if (m >= 60) {
        h = h + 1;
        m = m - 60;
    }
    if (h > 23) {
        h = h - 24;
    }
    printf("%d %d", h, m);

    return 0;
}

 

 

2480번 문제 : 주사위 세개

문제 :

 

소스 코드( 단순 if문, cstdio ) :

#include <cstdio>
using namespace std;

int main() {
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    if ((a == b) && (b == c)) {
        printf("%d", 10000 + a * 1000);
    }
    else if ((a != b) && (a != c) && (b != c)) {
        if ((a > b) && (a > c)) printf("%d", a * 100);
        else if ((b > a) && (b > c)) printf("%d", b * 100);
        else printf("%d", c * 100);
    }
    else {
        if (a == b) printf("%d", 1000+a*100);
        else if (b == c) printf("%d", 1000+b*100);
        else printf("%d", 1000+c*100);
    }    
    
    return 0;
}

 

소스 코드( vector와 algorithm 사용 ) :

//#include <cstdio>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    
    vector<int> v(3);
    cin >> v[0] >> v[1] >> v[2];
    
    sort(v.begin(), v.end());
    
    if((v[0] == v[1]) && (v[1] == v[2])) cout << 10000 + (v[0] * 1000);
    else if (v[0] == v[1]) cout << 1000 + (v[0] * 100);
    else if (v[0] == v[2]) cout << 1000 + (v[0] * 100);
    else if (v[1] == v[2]) cout << 1000 + (v[1] * 100);
    else cout << v[2] * 100;
    
    return 0;
}

 

 

풀이 및 학습하기 :

 

cout와 cin 속도 빠르게 하기

ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);

c와 c++ 입출력의 synchronization를 끄고, cin과 cout이 묶여있는 것을 풀어줌

 

 

vector에 대한 설명

vector<int> v(3); // int형 벡트 생성 후 크기 3 할당 (모든 벡터 0으로 초기화)
vector<int> v = { 1, 2, 3 }
vector<int> v[] = {{1,2}, {3,4}} // int형 벡터 배열 생성 (행 가변, 열 고정)
vector<vector<int>> v; // 2차원 벡터 생성 (행, 열 모두 가변)

vector<int> v = {1,2,3,4,5};
v.assign(5, 10); // 범위 5, 정수 10으로 초기화 출력 값 10, 10, 10, 10, 10

 

sort algorithm에 대한 설명

sort(v.begin(), v.end()); // 기본으로 오름차순
sort(v.begin(), v.end(), compare); // 사용자 정의 함수 사용
sort(v.begin(), v.end(), greater<자료형>()); // 내림차순
sort(v.begin(), v.end(), less<자료형>()); // 오름차순

 

 

#2 if문 문제풀이 끝

 

 

문제 출처 :

 

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

 

2525번: 오븐 시계

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

www.acmicpc.net

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

 

2480번: 주사위 세개

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

www.acmicpc.net