반응형
반응형
https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 난이도: solved.ac 실버 3 피보나치 수열은 dp(다이나믹 프로그래밍, 동적 계획법)를 이용하면 매우 빠르게 n번째 수열을 구할 수 있다 이번 문제는 n번째 수열을 찾는 게 아니라 f(0)과 f(1)을 몇 번 호출하는지 구하는 문제이다 이것도 dp를 이용해 금방 구할 수 있다 일단 n = 0일 때는 f(0)을 1번 출력하고 f(1)을 0번 출력한다 이를 2차원 배열로 나타내보자 f[n][0]은 n번째 피보나치 수열의 f(0)을 호출하는 횟수, f[n][1]은 n번째 피보나치 수열의 f(..
https://www.acmicpc.net/problem/24416 24416번: 알고리즘 수업 - 피보나치 수 1 오늘도 서준이는 동적 프로그래밍 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 오늘은 n의 피보나치 수를 재귀호출과 동적 프로그래밍 www.acmicpc.net 난이도: solved.ac 브론즈 1 #define _CRT_SECURE_NO_WARNINGS #include int f[41] = { 0,1,1 }; int cnt1 = 0; int cnt2 = 0; int fib(int n) { if (n == 1 || n == 2) { cnt1++; return 1; } else return (fib(n - 1) + fib(n - 2)); } ..
https://www.acmicpc.net/problem/1744 1744번: 수 묶기 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 www.acmicpc.net 난이도: solved.ac 골드 4 분명히 내가 사용하는 visual studio로는 예제에 나온 input이나 질문 게시판에 나온 반례들을 모두 만족하길래 도대체 어디가 틀렸는지 화가 났던 문제다 그래서 알고리즘 톡방에 질문을 올렸는데 아주 고마운 분께서 정성스럽게 답변을 해주셨다... 내가 빠트렸던 부분(잘 몰라서...) 은 맨 아래에서 설명하겠다 일단 내 풀이 방식은 ..
https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 난이도: solved.ac 실버 3 복잡해 보이지만 꽤 간단했던 문제다 문자열 S를 통째로 받아서 ' ', ''를 제외한 나머지 문자들이 나오면 stack에 모두 담았다가 ' '가 나오거나 '
https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 난이도: solved.ac 실버 5 이분 탐색을 활용하는 문제다 이분 탐색이란, 업다운 게임과 같은 방식으로 탐색을 하는 것이다 A가 1부터 50까지의 수 중에서 마음속으로 18이라는 수를 생각했고 B는 그 수를 맞춰야 하는 상황이라고 해보자 B: 음... 25? A: DOWN (25보다 작으므로) B: 12! A: UP (이제 B는 그 수가 12보다는 크..
https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 난이도: solved.ac 골드 4 처음에 문제 풀이를 시도했을 때 이게 골드 4? 너무 쉬운데? ㅋㅋㅋㅋㅋㅋ 하고 답안을 제출했지만 틀렸습니다 ....? '어디가 틀린 거지?' 하고 의아했던 문제다 이 문제에서 주의할 점 두 가지가 있다 1. 비교할 카드 묶음의 개수가 남아있는 카드 묶음 중 최소가 되어야 하는 점 2. N = 1일 때는 비교할 대상이 없으므로 0이 출력되어야 한다..