일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 위상정렬
- 다음 API
- 언어의 온도
- 평창동계올림픽
- 삼성 코딩테스트
- 창훈쓰다
- BFS
- 외판원 순회
- upper_bound
- yolo
- 다음 지도 api
- boj
- 안드로이드 스튜디오
- Segment Tree
- 인간이 그리는 무늬
- lower_bound
- multiset
- 백트레킹
- 다이나믹 프로그래밍
- MST
- 그리디 알고리즘
- 캘리그라피
- 영어회화 100일의 기적
- BOJ 2098
- 성화봉송주자
- DP
- 성화봉송
- 이분탐색
- 비트마스크
- 생활코딩
- Today
- Total
목록코딩/BOJ & 알고스팟 (67)
Hoon222y
그렇다 .. 처음 접근 했을때 ... 못풀었다 ㅋㅋㅋㅋㅋㅋㅋ 처음에 접근 방식을 완전 탐색? 뭐 이렇게 생각을 했었는데 전에 문해기 시간 때 했던 DP와 비슷한 접근이었다. 이 유형의 문제가 DP의 2가지중 하나의 대표적 유형이라고 한다.(힙색이었나? 배낭DP라고 했던듯 ...)일단 내 코드다. #include#include using namespace std; long long arr[100001];long int dp[100001]; int main(){ int num; int weight; memset(dp,0,sizeof(dp)); memset(arr,0,sizeof(arr)); cin >> num >> weight; for(int i=1;i> a >> b; arr[i] =a*1000000LL+b..
예전에도 한번 풀어봤던 문제이다. 방학때 공부하는 책 한권을 완성하기 위해 다시 풀어보는 과정중에 next_permutation을 사용하여 접근을 해보았다. #include//#include #include#include#include using namespace std; int arr[56];int answer;int stuNum;int setNum;bool gett[56];vector v;vector::iterator iter; int check(int a){ for(int i=0;i> testCase; //scanf("%d",&testCase); // next_permutation 쓸꺼임 while(testCase--){ answer =0; memset(gett,true,sizeof(gett)); ..
소풍을 가는데 싸우지 않기위해 친구끼리만 짝지어줄 수 있는 방법의 수를 출력하는 문제였다 . 내가 고민했던 방법은 2 가지였다. 1) 각각의 짝들을 하나의 수로 바꾸어 배열에 저장한 후 재귀적으로 반복하면서 겹치는 숫자가 없게하는 방법 . - 설명이 애매하네 .. 나중에 파일 찾아볼 것. 그런데 구현하는 과정에 for문을 학생수 만큼 반복해야하는데 그걸 동적으로 구현하지 못하여 포기2) 책에나온것처럼 재귀적으로 확인 - 결국 이걸로 풀긴 했는데 문제가 애매하다 .... 내가 짠 코드에서는 예제가 하나 틀리게 나오는데 정답처리가 되버렸다 ... 일단 내가 작성한 코드를 분석해보도록 하자.재귀함수 부분만 보도록 하자. 나머지 부분은 그냥 횟수에 관한 코드이므로 .....일단 전역변수로 학생의 1차원배열, 학..
내려가면서 최대합이 되도록 구하는 문제이다. 이 문제를 처음 접근할 때 모든 경우에 대해서 완전 탐색을 하게 되면 당연히 되지만 그렇게 되면 시간이 너무 오래 걸린다는 문제가 있다.그래서 이러한 문제를 접근할 때는 아래서부터 합을 하는 방식으로 접근을 하였다.위 코드 처럼 짰는데 [3][3] = [3][3] + 대수비교([4][3],[4][4]) 를하여 [0][0]까지 구한뒤 [0][0]값을 출력하면 되었다. 그리고 다른사람들의 코드를 읽어보려고 하였으나 .... 왠지 이해가 안된다 ㅋㅋㅋㅋ define의 정의과 뭐 이런걸 몰라서 그런가 ...암튼 완료
2차원 배열 동적할당을 해야하는 문제이다. 배열의 합을 구하는 for 문에서 뻘짓을 했다 ..;; ㅋㅋㅋ이 문제를 풀면서 정리하게된 2가지 개념은 바로 2차원배열 동적할당과, memset() 사용법이다. 먼저 2차원 배열 동적할당에 대해 정리해보자.코드 옆에 주석을 달아두었으니 읽어보면 이해가 될것이다. 유의해야할 점은 2차원 동적할당 해제하는 순서를 신경써야 할 것 이다. 다음은 memset()함수이다.함수에서 mem-라고 시작되는것은 메모리와 관련있다고 한다. ex)memcpy-메모리 카피함수memset함수를 사용하기 위해 일단 #include 를 선언해주고 사용해야 하며,memset(초기화 메모리 공간의 시작주소,초기화 하고싶은 값, 설정한 데이터의 사이즈) 이런식으로 초기화 해주면 된다.memse..
소숫점 9자리로 고정하는 문제이다.소숫점 고정하기 위해 (precision 을 사용하기 위해) #include 을 해주고 fixed를 같이 써주어야 9자리까지 고정이 된다. 참고할것!