일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 성화봉송
- 비트마스크
- 삼성 코딩테스트
- 영어회화 100일의 기적
- 위상정렬
- 다음 지도 api
- Segment Tree
- lower_bound
- 인간이 그리는 무늬
- 성화봉송주자
- 평창동계올림픽
- multiset
- upper_bound
- DP
- 다음 API
- 안드로이드 스튜디오
- 다이나믹 프로그래밍
- 외판원 순회
- 백트레킹
- BOJ 2098
- 생활코딩
- 그리디 알고리즘
- 캘리그라피
- 창훈쓰다
- BFS
- 이분탐색
- MST
- boj
- yolo
- 언어의 온도
- Today
- Total
목록코딩/사소한 팁 (27)
Hoon222y
dp를 하면서 최소값을 넣어주는 경우가 있는데 그럴떄는 min({,,,,})를 사용하면 깔끔해진다. 12 return ret= min({solve(a-9,b-3,c-1),solve(a-9,b-1,c-3),solve(a-3,b-1,c-9),solve(a-3,b-9,c-1),solve(a-1,b-9,c-3),solve(a-1,b-3,c-9)})+1; Colored by Color Scriptercs 이런식으로 ..
123if(keyy&(1
일단 가장 기본적인 #include 필수 보통 tuple을 사용하는 이유는 3개의 원소를 저장하기 위해서인데 pair와는 함수사용법이 조금 많이 다르다. 123456789101112131415161718192021#include typedef long long ll;#define INF 1e8 using namespace std; int main(){ int a,b,c; cin >>a >>b>>c; priority_queue q; q.push(make_tuple(a,b,c)); auto p = q.top(); q.pop(); int t = get(p); int y = get(p); int u = get(p); cout
비트연산은 &&,||,! 가 아닌 &.|,~ 을 통해서 한다. XOR연산은 그냥 a^b 이렇게 하면 그 결과값이 XOR한 결과이다.
12345if(n == n&-n) { printf("2의 거듭제곱!");}else{ printf("2의 거듭제곱 아님!");}cs +설명) 2의 거듭제곱은 어떤 한 비트만 켜져있을 것이다.n & -n 은 n에서 켜져있는 가장 아래의 비트만 켜진 수이다.그렇기 때문에 2개 이상이 켜져있다면 n & -n와는 절대 같아질 수 없는 것이다.그리고 n에 비트가 하나만 켜져있다면 n & -n 은 그 비트만 켜진 수가 되므로 같게되는것이다. 출처) http://sgc109.tistory.com/130잘보고 배웠당 ㅎㅎ
간간히 문제를 풀다보면 주어진 수열을 전부 검색해봐야 하는 경우가 있다. 혹은 그 다음의 배열을 구해야 하는 경우가 있는게 STL에 있는 next_permutation, 혹은 prev_permutation을 통하여 쉽게 구할수 있다. https://www.acmicpc.net/problem/10972 문제 혹은 https://www.acmicpc.net/problem/10973 해당문제가 가장 간단한 예가 될 것이다. 1234567891011121314151617181920212223#include #include #include #include using namespace std; int n;vector v;int main(){ scanf("%d" , &n); v.resize(n); for(int i=..
123456789101112#include #include using namespace std;int main() { char c; while ((c = getchar()) && c != EOF) { printf("%c",c); } return 0;} Colored by Color Scriptercs이렇게 입력을 받으면
123456789void eratos(){ for (int i = 2; (i*i)
보통 코드를 올리게 되면 복붙을 하는데 그럼 툴에 따라 다르게 복붙되는 경우가 있고, 깔끔하지도 않은편이다...따라서 https://colorscripter.com 를 이용한 코드 업로드 방법에 대해 설명을 하겠다.1) 접속을 한다. 2) 언어와 스타일패키지, 배경을 설정해준다.3) 작성한 코드를 이쁘게 복붙한다.4) "클릭보드에 복사" 를 클릭하고 작성중인 블로그에 복붙을 하면 된다. ^오^
문제를 풀다보면 https://www.acmicpc.net/problem/7576 처럼 BFS의 횟수를 카운트 해야하는 경우가 생기게 된다.이때 대략적으로 쓸수있는 코드를 정리하자면 1234567891011121314151617181920#include using namespace std; void bfs() { queue qu; qu.push(1); int cnt=0; while (!qu.empty()) { int c = qu.size(); cnt++; //BFS의 반복횟수 count while (c--) { int here = qu.front(); qu.pop(); //각 회차별 작업을 여기서 해준다. } }}Colored by Color Scriptercs 이런식으로 그 회차별 queue의 size..