Notice
Recent Posts
Recent Comments
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

블로그 언저리인 무언가

자주 쓰지만 까먹는 문법 모음 본문

Programming/Etc

자주 쓰지만 까먹는 문법 모음

he1fire 2020. 9. 26. 01:41
728x90
#include <bits/stdc++.h> // gcc에서 대부분의 헤더를 포함하는 헤더파일
#define ll long long //long long 축약
#define INF 1e9+7 // 최대값
#define MOD (ll)(1e9+7) // 나머지계산
using namespace std;
typedef pair<ll,ll> pll; // pair 축약

// 구조체 만들기
struct Edge{
    ll idx, dst;
    Edge() {}
    Edge(ll a, ll b): idx(a), dst(b) {} 
};
struct dice{
    ll arr[3][2];
    dice() {}
    dice(ll a, ll b, ll c, ll d, ll e, ll f) : arr{{a,f},{b,d},{c,e}} {}
};

// 구조체 비교함수(우선순위 큐에 자주 사용)
bool operator<(ABC x, ABC y){
    return x.b>y.b;
}

// sort 기준 함수
bool cmp(ABC x, ABC y){
    return x.a>y.a;
}

// 최대공약수 구하기
ll gcd(ll a, ll b){
    return a ? gcd(b%a,a) : b;
}

// 최소 공배수 구하기
ll lcm(ll a, ll b){
    return a/gcd(a,b)*b;
}

int main(){
    // cin, cout 속도증가
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    ll A[105], B[105][105], C[105][105];
    vector<ll> v;
    string s;
    double d;

    // 공백 포함 한줄 입력 받기
    getline(cin,s);
    
    // cin과 getline 혼용시 버퍼 비우기
    cin.ignore();

    // 배열에서 최대,최소값 찾기
    max_element(A,A+105);
    min_element(v.begin(),v.end());
    
    // 2차원 이상 배열 쉽게 초기화하기
    fill(&B[0][0],&B[104][105],-1);
    
    // 2차원 이상 배열 쉽게 복사하기 (B를 C로 옮길때)
    copy(&B[0][0],&B[104][105],&C[0][0]);
    
    // 배열 오름차순으로 채우기
    iota(A,A+105,0);
    iota(v.begin(),v.end(),0);

    // 내림차순 정렬
    sort(v.begin(),v.end(), greater<ll>());

    // 이진탐색으로 값찾기 (정렬 선행) 있으면 1, 없으면 0 반환
    if (binary_search(v.begin(),v.end(),99));

    // 크거나 같으면서 제일 작은 값 찾기
    *lower_bound(v.begin(),v.end(),99);

    // 크면서 제일 작은 값 찾기
    *upper_bound(v.begin(),v.end(),99);

    // 내림차순 우선순위큐
    priority_queue<ll, vector<ll>, greater<ll> > pq;

    // 사전순으로 다음인 순열 구하기, 없다면 0반환
    next_permutation(v.begin(),v.end());

    // 벡터값의 중복제거 (정렬 선행)
    v.erase(unique(v.begin(),v.end()),v.end());
    
    // 소수 반올림
    d=floor(d+0.5);
    
    // cout x칸만큼 공백+왼쪽정렬
    cout << setw(x) << "123";
    return 0;
}
728x90

'Programming > Etc' 카테고리의 다른 글

2024 SCON 후기  (0) 2024.05.27
2023 SCON 후기  (0) 2023.05.24
컴퓨터 바꾼김에 쓰는 VScode 세팅법  (0) 2021.09.30
2020 ICPC Seoul Regional 예선 후기  (0) 2020.10.11
Comments