일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 다이나믹 프로그래밍
- 다음 API
- yolo
- 삼성 코딩테스트
- 위상정렬
- 백트레킹
- 이분탐색
- 창훈쓰다
- 인간이 그리는 무늬
- 그리디 알고리즘
- 영어회화 100일의 기적
- lower_bound
- upper_bound
- 외판원 순회
- Segment Tree
- 성화봉송주자
- MST
- boj
- BFS
- 비트마스크
- 평창동계올림픽
- DP
- 성화봉송
- 언어의 온도
- 캘리그라피
- BOJ 2098
- multiset
- 안드로이드 스튜디오
- Today
- Total
목록코딩 (164)
Hoon222y
https://www.acmicpc.net/problem/1459 단순하게 생각해서 풀면된다. 주의해야 할 점은 대각선을 이용해서 갈때 더 가까워지는 지점이 있다는 점과 ... 자료형 int범위 벗어난다는 것이다 ; 12345678910111213141516171819202122232425262728#include #include #include #include #include #include #include #include typedef long long ll; using namespace std; ll x,y,c,d; int main(){ cin >>x >> y>>c >>d; if(x>y) swap(x, y); ll ans = min((x+y)*c , x*d+(y-x)*c); if((y-x)%2 ==..
https://www.acmicpc.net/problem/2553 추석인데 할게 없어서 쓸데없이 쓸데없는 문제들만 주구장창 풀고 있는것 같다 ;; 해당문제의 경우 그냥 뒷자리중 0이 아닌 숫자를 찾는 문제인데 그냥 단순 연산을 통해서 계산을 처음 해보았는데 n의 최대크기인 20000을 넣으니까 연산이 한 세월 걸리더라.. 그래서 연산을 좀 줄여보고자 ans의 범위가 10000을 넘어가면 %1000 을 통해 뒤에 3자리만 유지하였더니 통과하였다. 직관적으로 넣고 직관적으로 맞은거라서 %1000에 대해서 왜 1000을 넣었는지는 정당하게 증명은 안된당 ㅎㅎ 12345678910111213141516171819202122232425262728#include #include #include #include #i..
https://www.acmicpc.net/problem/9663 백트레깅 너무 어렵당. 백트레킹과 완전탐색의 차이라고 한다면 alpha beta pruning 처럼 백트레킹에는 커팅되는 과정이 추가된다고 생각할수 있을꺼 같다 (뇌피셜 ) 모든 경우를 다해보지 않고 일단 각 행에는 1개씩은 queen이 존재할 수 있으므로 모든행까지 다 가는 경우는 완성할 수 있는 경우의 수가 +1이 된다. 각각의 배열 3개를 통해서 해당 퀸이 같은 열이 있는지, 같은 대각선 1,2에 있는지를 상수시간에 확인할 수 있다. 어렵당 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051#include #includ..
https://www.acmicpc.net/problem/11051 무작정 하면 자료형 범위를 벗어난다. 따라서 파스칼의 삼각형 공식을 사용하여 문제를 해결하게 된다.nCr = n-1Cr + n-1Cr-1 을 사용하면 된다. 12345678910111213141516171819202122232425262728293031#include #include #include #include #include #include #include typedef long long ll; using namespace std; int n,k,dp[1111][1111]; int solve(int a,int b){ if(dp[a][b] >0){ return dp[a][b]; } if(a == b || b == 0){ return ..
https://www.acmicpc.net/problem/1759 대표적인 백트레킹(backtracking) 문제라고 볼 수 있다. 해당 문제의 경우 solve의 인자로 현재 위치 , 지금까지 저장 된 str 배열을 사용하였다. https://www.acmicpc.net/problem/2661 해당 문제 또한 추천하는 문제라고 하니 풀어보도록 하자. 1234567891011121314151617181920212223242526272829303132333435363738394041#include #include #include #include #include #include #include typedef long long ll; using namespace std; int n,m;char arr[111];..
https://www.acmicpc.net/problem/1269 해당 문제를 풀다가 set STL을 이용하여 집합 연산을 쉽게 해결할 수 있는 방법을 알게되었다. (여집합 차집합 교집합 등등) union , intersection , difference , symmetric difference를 이용해서 해결한다. 이때 주의할 점은 아래 코드처럼 정답이 저장되어질 배열에 크기가 충분하게 할당이 되어야 한다는 점이다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960#include #include #include using namespace std; int..
https://www.acmicpc.net/problem/2449 "전구!" 다양한 색깔로 전구가 켜져있고, 인접한 색깔의 경우 바뀔때 동시에 바뀐다고 하면 최소한으로 바꾸는 횟수를 정하는 문제이다.DP로 접근하되, 주의할점은 각자가 색깔을 가지고 있다는 점이다. 27번째 줄을 보면 arr[s],arr[i+1]의 값을 비교하는것을 볼 수 있다. 이는 기준을(전구색이 바뀌는 기준을 왼쪽으로) 잡고 그 색깔이 비교해서 같으면 0을 더하고 다르면 1을 더해주는 문제이다. DP문제의 경우 테이블만 정의 잘하면 되는데 언제쯤에 자연스럽게 되련지... 1234567891011121314151617181920212223242526272829303132333435363738394041424344#include #inc..
https://www.acmicpc.net/problem/2098TSP 문제로 유명한 외판원순회 문제이다. 해당문제의 경우 n의 범위가 16까지이기 때문에 일반적인 비트배열만 이용하는것이 아니라 비트마스트+DP를 사용하는 문제이다. 문제를 해결할 때 상태를 보고 지금까지 모든 부분을 다 여행한 경우 (1
정렬 알고리즘의 종류에는 여러가지가 있는데 이번 포스팅에서는 각 정렬 알고리즘에 대해 알아보도록 하겠다. [버블정렬 (bubble sort)] - 버블 정렬의 경우 두 인접합 원소를 비교하여 정렬하는 방법이다. 시간복잡도가 O(n^2) 이기 때문에 그냥은 잘 사용하지 않지만 단순구현하지 좋기때문에 사용하기도 한다. 해당 과정처럼 가장 인접한 두 원소들을 비교하고 바로 옆칸으로 이동하여 끝까지 이동하면서 비교를 하게된다. 버블소트의 경우 다른 정렬들과는 다르게 비효율적이라고 했는데 그 이유는 해당과 같다. 간단하게 총정리 느낌으로 본다면 [선택정렬 (selection sort)] - 주어진 원소에서 정렬되어지지 않은 부분의 가장 작은 값을 앞으로 보내는 방식이다. 버블소트와 비슷하게 모든 부분에 대해서 비..
평소에 보고서나 보고서나 보고서를 쓸 때 그래프를 그려서 표현해야 할 때가 있다. 보통의 경우 많은 사람들이 엑셀 혹은 PPT에 있는 그래프 기능을 이용하여 그래프를 그리거나 손수 수작업을 하는 경우가 있는데 디자인 측면에서 본다면 ... 그냥 공대생을 위한 비쥬얼이라고 표현하면 적당할 것이다. 이러한 공대생의 한계를 넘어서기 위한 그래프 디자인을 하기 위한 것이 바로 GNU plot이다. 다운로드의 경우 http://www.gnuplot.info 에서 다운로드를 하면 된다. 다운로드를 하게 되면 GNU plot 을 킬 수 있다. 그래프 이쁘게 만들어주는 디자인이라고 해서 툴 자체 디자인도 이쁠줄 알았는데 그냥 cmd 창과 비슷하게 생겼다. 해당 창에다가 명령어를 통해서 그래프를 만들어 주게된다. 진행은..