Coding Test/C

Coding Test/C

백준: 9095 - 1, 2, 3 더하기

1. 문제 요약 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. (단, n은 11보다 작은 양의 정수) 2. 문제 풀이 처음에는 재귀적으로 풀려고 했는데 점화식으로 정리가 되길래 아주 간단하게 반복문을 사용해서 N[10]까지 구해주었다 #define _CRT_SECURE_NO_WARNINGS #include int main(void) { int n, x; int N[11] = { 0 }; scanf("%d", &n); // 입력 값의 수 N[1] = 1; N[2]..

Coding Test/C

백준: 1463번 - 1로 만들기

1. 문제 요약 정수 X에 적용할 수 있는 연산은 세가지 인데 1. 3의 배수이면 3으로 나누기 2. 2의 배수이면 2로 나누기 3. 1을 빼기 X를 1로 만들 수 있는 최소한의 연산 횟수를 구하는 것이 목표 2. 첫번째 풀이 처음부터 최소 값을 구할 수 있는 방법이 없을까 부터 생각해봤다 어떻게 10을 입력했는데 2를 먼저 나누지 않고 1을 먼저 뺐을까? 그래서 X-1의 값이 3의 배수라면 빼고 3으로 나누는 것이 그냥 2를 나눴을 때 보다 연산횟수가 더 작아진다는 것을 알게 되었다 그래서 반복문 안에서 조건문을 사용해서 3의 배수인지 판단하기 - 1을 뺐을 때 3의 배수가 되는지 판단하기 - 2의 배수인지 판단하기 의 순서로 X를 판단하게 했고 그 마저도 안된다면 1을 빼도록 했다 #define _C..

Coding Test/C

백준: 2839번 - 설탕 배달

1. 문제 요약 설탕을 담을 수 있는 봉지의 종류가 3kg과 5kg짜리 두 개인데, 어떻게 하면 입력받은 무게를 최소의 봉지 수를 사용하여 담을 것인가? 예) 18 = 5 + 5 + 5 + 3 (output: 4) = 3 + 3 + 3 + 3 + 3 + 3 (output: 6) 이런 경우에 4를 출력 2. 처음 풀이 처음엔 수업시간에 풀었던 문제 중에 비슷한 문제가 생각나서 pick이라는 재귀함수를 만들어서 풀었다. 배운대로라면 bucket을 만들어야 하는데 그렇게 만들면 시간이 초과될 것 같아 없앴는데, 그래도 파일 크기가 너무 크고 시간 초과가 된다. #define _CRT_SECURE_NO_WARNINGS #include void pick(int* item, int N, int k, int cnt,..

agor
'Coding Test/C' 카테고리의 글 목록