본문 바로가기
728x90

Baekjoon/단계별로 풀어보기13

[단계 13] 백트래킹 (8문제) backtracking : 퇴각검색 : 한정 조건을 가진 문제를 푸는 전략 : 조합탐색과 연관 www.acmicpc.net/step/34 백트래킹 단계 삼성 SW 역량 테스트 기출 문제 1 www.acmicpc.net ● [문제번호 15649] N과 M(1) #include using namespace std; int N, M; int num[9] = {0, };// 초기화 하면 4ms 실행시간 감소 bool visited[9] = {0, }; void dfs(int cnt) { if(cnt == M) { for(int i = 0; i < M; i++) cout M; dfs(0); return 0; } ● [문제번호 15650] N과 M(2) #include using namespace std; int .. 2021. 1. 22.
[단계12] 정렬 (9문제) www.acmicpc.net/step/9 정렬 단계 시간 복잡도가 O(nlogn)인 정렬 알고리즘으로 풀 수 있습니다. 예를 들면 병합 정렬, 힙 정렬 등이 있지만, 어려운 알고리즘이므로 지금은 언어에 내장된 정렬 함수를 쓰는 것을 추천드립니다. www.acmicpc.net ● [문제번호 2750] 수 정렬하기 #include #include void swap(int* num, int a, int b) { int temp = num[a]; num[a] = num[b]; num[b] = temp; } int main() { int N; scanf("%d", &N); int* num = (int*)malloc(N * sizeof(int)); for(int i = 0; i < N; i++) scanf("%d".. 2021. 1. 14.
[단계11] 부르트 포스 (5문제) brute-force : 무차별 대입 : 모든 경우의 수를 대입한다. www.acmicpc.net/step/22 브루트 포스 단계 체스판을 만드는 모든 경우를 시도하여 최적의 방법을 찾는 문제 www.acmicpc.net ● [문제번호 2798] 블랙잭 #include #include int main() { int N, M; scanf("%d %d", &N, &M); int* num = (int*)malloc(N * sizeof(int)); for(int i = 0; i < N; i++) scanf("%d", &num[i]); int max = 0; for(int a = 0; a < N; a++) { for(int b = 0; b < N; b++) { for(int c = 0; c < N; c++) { .. 2021. 1. 13.
[단계10] 재귀 (4문제) www.acmicpc.net/step/19 ● [문제번호 10872] 팩토리얼 #include int factorial(int N) { if(N == 1 || N == 0) return 1; return N * factorial(N - 1); } int main() { int N; scanf("%d", &N); printf("%d", factorial(N)); return 0; } ● [문제번호 10870] 피보나치 수5 #include int fibonacci(int n) { if(n == 0) return 0; else if(n == 1) return 1; return fibonacci(n - 1) + fibonacci(n - 2); } int main() { int n; scanf("%d", &n).. 2021. 1. 12.
728x90