Koala - 2기/C반

www.acmicpc.net/problem/11057 11057번: 오르막 수 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수 www.acmicpc.net 모듈러 연산이 또 나왔네요!! 항상 기억하면 좋습니다. (A+B)%M은 다음과 같습니다. (A%M + B%M)%M 즉 어떤 답을 모듈러 연산을 통해 도출해야 할 경우, 정답을 구하는 과정에서 나오는 연산의 결과를 계속 모듈러 연산 해주면 됩니다. [코드 보기] 더보기 #include #include #define mod 10007 using namespace std; int ..
www.acmicpc.net/problem/14606 14606번: 피자 (Small) 예제1의 입력이 1이므로, 게임 시작부터 갑이 분리할 수 있는 피자탑이 없습니다. 따라서 갑이 얻는 즐거움은 0입니다. 예제2의 정답 3은 다음과 같은 과정을 통해 얻어집니다. 먼저 놀이를 시작 www.acmicpc.net 입력이 10까지 밖에 없습니다. 간단한 문제입니다. 채점시 방법은 보지 않고 출력 결과만 보기 때문에, 이처럼 간단한 문제는 결과를 직접 배열에 저장해놓고 입력에 따라 출력하는 방법을 쓸 수도 있겠습니다. [코드 보기] 더보기 #include using namespace std; int main() { int n; int dp[100] = { 0,0,1,3,6,10}; cin >> n; for (i..
www.acmicpc.net/problem/1010 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net 가끔 이런 문제들이 있습니다. 간단한 수학문제를, 아주아주 길고 긴 스토리 텔링을 통해 헷갈리게 해놓고 '히히 이거 사실 수학문젠데.... 알아 챌수 있닝???' 식의 문제죠.. 이 문제는 조합으로 풀 수 있는 문제입니다. 하지만 역시 수가 매우매우 커질 것 같습니다. 조합으로 푸려다가 포기하셨다면, 제 코드가 도움이 될 것 같습니다. [전체 코드 보기] 더보기 #include using namespace st..
문제 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. 풀이 더보기 n의 크기를 키워가며 방법의 수를 구하다 보면 피보나치 수의 규칙을 찾을 수 있다. 3번째 이후부터 Fn = Fn-1 + Fn-2 규칙을 적용할 수 있다. 따라서 0,1,2,3 번째까지의 vector는 초기화를 해준다. 그리고 vector의 크기가 기하급수적으로 커지는 것을 막기 위해 최종적으로 구해야하는 수인 2xn 크기의 직사각형을 채우는 방법의 수를 10007로 나눈 나머지를 저장한다. 소스코드 #include #include #include #include using namespace std; int..
문제 대구 달성공원에 놀러 온 지수는 최근에 새로 만든 타일 장식물을 보게 되었다. 타일 장식물은 정사각형 타일을 붙여 만든 형태였는데, 한 변이 1인 정사각형 타일부터 시작하여 마치 앵무조개의 나선 모양처럼 점점 큰 타일을 붙인 형태였다. 타일 장식물을 구성하는 정사각형 타일 한 변의 길이를 안쪽 타일부터 시작하여 차례로 적으면 다음과 같다. 1, 1, 2, 3, 5, 8, ... 타일의 개수 N(1 ≤ N ≤ 80)이 주어졌을 때, N개의 타일로 구성된 직사각형의 둘레를 구하는 프로그램을 작성하시오. 풀이 더보기 반복적으로 문제의 직사각형을 구성하는 정사각형들을 구하다보면 각 정사각형의 한 변이 피보나치 수임을 알게 된다. 그리고 타일의 수의 합을 n이라 하면 정사각형의 한 변이 n번째 피보나치 수이..
문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오. 풀이 더보기 n을 입력받은 뒤 피보나치 수의 공식( Fn = Fn-1 + Fn-2)을 이용한 함수를 만든다. vector 를 이용하여 피보나치 수를 저장한다. 초기값으로 0번째 수는 0, 1번째 수는 1로 초기화 시켜놓는다. 최종적으로 n번째 피보나치 수를 출력한다. 소스코드 #include #include #include #include using namespace std; int N; vector num; long long result = 0; int fib(int a..
알고리즘 헤더파일에는 배열의 정렬을 쉽게 처리해주기 위한 sort가 내장되어 있습니다. 오름차순 정렬, 내림차순 정렬과 Pair가 있을 때 내맘대로 정렬하는 법을 살펴보겠습니다. 1. 오름차순 정렬 정렬할 배열과 범위를 정해주면, 기본적으로 오름차순으로 정렬해줍니다. c++의 sort함수는 quick sort로 구현되어 있습니다. sort(a, a + 10, less()); 오름차순이 기본이므로, 세번째 인자를 제외해도 오름차순 정렬이 됩니다. sort(a, a + 10); #include #include #include #include using namespace std; int main() { int a[10] = { 1,5,4,6,7,10,9,2,3,8 }; sort(a, a + 10);..
문제 N부터 M까지의 수들을 종이에 적었을 때 종이에 적힌 0들을 세는 프로그램을 작성하라. 예를 들어, N, M이 각각 0, 10일 때 0을 세면 0에 하나, 10에 하나가 있으므로 답은 2이다. 풀이 더보기 N,M 을 입력받아 N 부터 M까지 하나하나씩 0의 개수를 센다 . cnt =0 find_zero 함수를 만들어 num을 10으로 나눈 나머지가 0이면 0의 개수를 하나 추가한다. num 을 10으로 나누는 과정을 반복하여 위와 같은 방식으로 십의 자리, 백의자리 ... 를 확인한다. 코드 더보기 # include int find_zero(int num, int* cnt); int main() { int T, N, M; scanf("%d", &T); for (int i = 0; i < T; i++..
문제 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩치가 각각 (x, y), (p, q)라고 할 때 x > p 그리고 y > q 이라면 우리는 A의 덩치가 B의 덩치보다 "더 크다"고 말한다. 예를 들어 어떤 A, B 두 사람의 덩치가 각각 (56, 177), (45, 165) 라고 한다면 A의 덩치가 B보다 큰 셈이 된다. 그런데 서로 다른 덩치끼리 크기를 정할 수 없는 경우도 있다. 예를 들어 두 사람 C와 D의 덩치가 각각 (45, 181), (55, 173)이라면 몸무게는 D가 C보다 더 무겁고, 키는 C가 더 크므로, "덩치"로만 볼..
# '출석'은 정상적으로 3문제 푸신 분들이고, '보류'는 한문제 이상 푸신분들, '불이행'은 0문제 푸신 분들 입니다. # '보류'로 표시된 분들은 다음날 오전 12시까지 마무리 하시면 '출석'으로 바꿀수 있습니다. # '불이행' 3번일시 퇴출입니다. 1.11 1.12 1.13 1.14 1.15 1.16 1.17 tpdms0159 출석 출석 출석 불이행 출석 출석 출석 lsw725 출석 출석 출석 출석 출석 출석 출석 asb0723 출석 출석 출석 불이행 출석 출석 출석 ben4379 출석 출석 출석 1.18 1.19 1.20 1.21 1.22 1.23 1.24 tpdms0159 출석 출석 출석 출석 출석 출석 출석 lsw725 출석 출석 출석 출석 출석 출석 출석 asb0723 출석 출석 출석 출석 ..
KauKoala
'Koala - 2기/C반' 카테고리의 글 목록 (2 Page)