일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MST
- 피보나치 수
- 재귀
- 클래스
- 큐
- lis
- 백트래킹
- 세그먼트 트리
- 중복 순열
- 비트마스크
- 빠른 입출력
- 우선순위 큐
- DP
- 순열
- 문자열
- 시뮬레이션
- 완전 탐색
- 크루스칼
- 이분 탐색
- dfs
- SSAFY
- BFS
- 조합
- 링크드리스트
- 그리디
- 메모리풀
- 스택
- Knapsack
- BeautifulSoup
- 분할 정복
- Today
- Total
목록분류 전체보기 (156)
작심 24/7
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/baPFMl/btqEiMhFAEd/s86LXLoJoQOjYMx0WpP2IK/img.jpg)
#include #include using namespace std; int main() { int N = 5; int arr[5] = { 1, 2, 3, 4, 0 }; for (int i = 1; i = 0; j--) { if (arr[j] > arr[j + 1]) swap(arr[j], arr[j+1]); //키 값인 arr[j+1] 보다 왼쪽 값이 더 크면 교환한다 else break; //키 값이 더 클 경우 더 비교할 필요 없으므로 종료시킨다 } } for (int i = 0; i < N; i++) cout
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ciHGgr/btqEg1z7Bc0/nx1H0ktMyrW6cMYBSYIp60/img.jpg)
#include #include using namespace std; int main() { int N = 5; int arr[5] = { 7, 4, 5, 1, 3 }; for (int i = 1; i < N; i++) { //버블 정렬 for (int j = 0; j < N - i; j++) { if (arr[j + 1] < arr[j]) swap(arr[j], arr[j + 1]); //오른쪽 값이 더 작으면 왼쪽 값과 교환한다 } } for (int i = 0; i < N; i++) cout
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bmZjoM/btqEg2scDcY/GZccQT2FZTRX5whQzBbgeK/img.jpg)
#include #include using namespace std; int main() { int N = 5; int arr[5] = { 9, 6, 7, 3, 5 }; for (int i = 0; i < N; i++) { // 선택 정렬 int min_idx = i; for (int j = i + 1; jarr[j]) min_idx = j; //최솟값 위치 구함 swap(arr[i], arr[min_idx]); // 구한 최솟값과 그 범위에서 가장 왼쪽에 있는 값과 교환한다 } for (int i = 0; i < N; i++) cout
11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 기둥이 A, B, C이고 N이 2개일 때부터 4개일 때까지 순서를 적어나가보면 B에 N-1개의 원반을 쌓아놓은 후 C에 다 옮기는 방식이 공통적으로 나온다. 즉, 1. A -> B 로 N-1개 옮김 2. A -> C 로 1개 옮김 (가장 큰 원반) 3. B -> C 로 N-1개 옮김 이렇게 세 번의 과정으로 나눌 수 있다. 이걸 그대로 재귀함수에 갖다 넣으면 해결된다. #include #include using namespace std; voi..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/483ag/btqEiMaTNhx/T6jMcKpBBv7pGXPtiOLRKK/img.jpg)
2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 � www.acmicpc.net 분할 정복 알고리즘 문제라 한다. 분할 정복법이란 문제를 나눌 수 없을 때까지 나누어서 각각을 풀고 다시 합병하는 방법인데 N이 27이면 그림처럼 27X27 -> 9X9 -> 3X3 -> 1X1까지 분할시킬 수 있다. 언제가 공백인지가 관건인데 저런 식으로 공백인 좌표들을 모아 두고 규칙성을 찾아보니 N이 27인 경우엔 좌표를 9, 3, 1로 나눈 값에 %3을 한 값이 1일 때 즉, i/N/3%3, i/N/3/3%3, i/N/3/3..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c7EfBj/btqEilECsK9/zLYbxEvRbeLn2q4MYE7Lz0/img.png)
코딩테스트 연습 - 지형 이동 [[1, 4, 8, 10], [5, 5, 5, 5], [10, 10, 10, 10], [10, 10, 10, 20]] 3 15 [[10, 11, 10, 11], [2, 21, 20, 10], [1, 20, 21, 11], [2, 1, 2, 1]] 1 18 programmers.co.kr 이 문제는 풀이를 찾아보면서 공부하며 풀었다. 여기 친절히 설명되어 있는 공식 해설을 첨부한다. [2019 윈터코딩] 가장 어려웠던 코딩테스트 3번 문제 해설 스타트업에서 개발자 커리어를 시작하고픈 수많은 주니어들에게 꾸준한 채용 등용문이 되어주고 있는, 프로그래머스의 윈터코딩(Winter coding). 현재 1차 코딩테스트와 2차 실무 과제 제출을 모두 prgms.tistory.com 상..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bfzBJJ/btqEhQyjV3J/dholgUJ54tvlTslJkfsXQ0/img.png)
코딩테스트 연습 - 종이접기 직사각형 종이를 n번 접으려고 합니다. 이때, 항상 오른쪽 절반을 왼쪽으로 접어 나갑니다. 다음은 n = 2인 경우의 예시입니다. 먼저 오른쪽 절반을 왼쪽으로 접습니다. 다시 오른쪽 절반을 왼쪽�� programmers.co.kr 종이를 같은 방향으로 n번 접었다 펼쳤을 때 생기는 굴곡이 v 모양이면 0, ∧ 모양이면 1을 출력해야 한다. 규칙을 찾기 위해 종이를 직접 5번까지 접어보니 패턴이 나왔다. N Result 1 0 2 0 0 1 3 0 0 1 0 0 1 1 4 0 0 1 0 0 1 1 0 0 0 1 1 0 1 1 5 0 0 1 0 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 1 1 ... ... 색으로 표시한 부분..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/GCNYZ/btqEeYxRuCp/cD2p9VmaZS6jbzkEX9IQO0/img.png)
코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 �� programmers.co.kr 위와 같이 사각형을 대각선 기준으로 반 접었을 때 점선이 겹치는 부분을 제외한 1X1 사각형들의 개수를 구하는 문제이다. 규칙을 찾기 위해 가로가 W, 세로가 H로 W b)에 대해 a%b를 r이라 한다면 a와 b의 최대공약수는 b와 r의 최대공약수와 같다는 개념이다 예를 들어 20과 12의 최대공약수를 구하려면 20%12는 8이므로 다시 12와 8의 최대공약수를 구해야 한다. 12%8은 4이므로 다시 8과 4의 최대공약수를 구..