본문 바로가기

백준

10768 특별한 날

#include <iostream>

int main() {
    int month, day;
    scanf("%d %d", &month, &day);
    //printf("%d %d", month, day);
    
    if(month > 2)
        printf("After");
    else if(month < 2)
        printf("Before");
    else{
        if(day < 18)
            printf("Before");
        else if(day > 18)
            printf("After");
        else
            printf("Special");
    }
}

 

너무 쉽다 생각해서 글도 안 적었는데 더 좋은 방법이 있었다!

pair를 쓰면 되는데 이거에 대해 처음 들어봐서 뭔지 찾아봤다. 

pair

두 객체를 하나의 객체로 취급할 수 있게 해준다

사용법

pair<타입, 타입> date : pair 클래스 date를 만든다

 

date.first : date의 첫번째 인자

date.second : date의 두번째 인자

 

date에 값을 넣으려면 { , } 중괄호를 통해서 넣어도 되고

make_pair( , )를 통해 넣을 수도 있다. 

 

#include <iostream>

using namespace std;

int main() {
    pair<int, int> special = {2, 18};
    pair<int, int> date;
    scanf("%d %d", &date.first, &date.second);
    
    if(date < special)
        printf("Before");
    else if(date > special)
        printf("After");
    else
        printf("Special");
        
    return 0;
}

 

pair를 통해서 비교할때는 첫번째 원소 비교 -> 두번째 원소비교 순으로 간다!

첫번째 원소를 비교하고 첫번째 원소가 같다면 두번째 원소를 비교한다. 

 

딱 이 문제를 위한 자료구조 아닌가! 짱 편하다. 

얘도 max처럼 잘써줘야지

 

using ii = pair<int, int>; 

ii date;

얘도 이런식으로 축약해서 많이 사용한다. 

현실에서는 별다줄 싫어하는데 코딩에서는 다 줄여놓는게 편하다.

오만때만거 다 줄여버리자

 

#include <iostream>

using namespace std;
using ii = pair<int, int>;

int main() {
    ii special = {2, 18};
    ii date;
    scanf("%d %d", &date.first, &date.second);
    
    if(date < special)
        printf("Before");
    else if(date > special)
        printf("After");
    else
        printf("Special");
        
    return 0;
}

별다줄 당한 코드

 

 

 

'백준' 카테고리의 다른 글

17362 수학은 체육과목 입니다 2  (0) 2019.10.02
5575 타임카드  (0) 2019.10.02
16673 고려대에는 공식 와인이 있다  (0) 2019.10.02
1297 TV크기  (0) 2019.10.02
2355 시그마  (0) 2019.10.01