분류 전체보기

대학교/프로그래밍랩

[프로그래밍 랩] 4주차 - 재귀

문제 1. 재귀함수 sum, factorial, fibonacci, gcd, binary 1 ~ n까지의 합인 sum, 1 ~ n까지의 곱인 factorial, 피보나치 수열 fibonacci, 유클리드 호제법을 이용한 최대공약수를 구하는 gcd, 10진수 n을 2진수로 바꿔 출력하는 binary 함수를 재귀함수로 구현하시오. 추가) 1 ~ n까지 홀수의 합과 짝수의 합을 반환하는 oddsum, evensum, 10진수 n을 k진수로 바꾸는 jinbub을 구현하시오. 이번 문제는 배워갈게 많은 문제이다. a진수 숫자인 n을 b진수로 바꾸는 문제는 시험에 간간히 나오는 문제이기 때문에 알아두면 좋다. 또한, 유클리드 호제법을 통해 gcd를 구하는 것은, 알고리즘 문제를 풀면서 최대공약수를 구하는 문제를 풀..

coding_test/BAEKJOON

백준 9009번 C언어 풀이

https://www.acmicpc.net/problem/9009 9009번: 피보나치 입력 데이터는 표준입력을 사용한다. 입력은 T 개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 테스트 데이터의 수를 나타내는 정수 T 가 주어진다. 각 테스트 데이터에는 하나의 정수 n www.acmicpc.net 입력받은 자연수를 서로 다른 피보나치 수의 합으로 분해하는 문제. 재귀함수로 풀이했다. 역시 재귀함수는 중간에 잘못 꼬이면 고치기가 힘든 것 같다. #include int find_max_fibo(int n) { int a1 = 0, a2 = 1; int fibo = 1; while (a1 + a2 0) { find_fibos(n - f); } printf("%d ", f); } } void main..

coding_test/BAEKJOON

백준 2798번 C언어 풀이

https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 블랙잭의 변형 놀이. 아무리 그래도 그렇지 진짜 3중첩 for문으로 될 줄은 몰랐다. #include #include int main () { int n, m, max = 0, sum; int * arr = NULL; int i, j, k; scanf("%d %d", &n, &m); arr = malloc(n * sizeof(int)); for (i = 0; i <..

coding_test/BAEKJOON

백준 10253번 C언어 풀이

https://www.acmicpc.net/problem/10253 10253번: 헨리 입력 데이터는 표준입력을 사용한다. 입력은 T 개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 테스트 데이터의 개수 T 가 정수로 주어진다. 각 테스트 데이터는 한 줄로 구성되며, 여기 www.acmicpc.net 인생 첫 백준 골드티어문제이다. 그냥 뭣같이 어렵다. 설명만 보고 소수로 접근해버리는 순간 어째서 컴퓨터는 소수도 제대로 처리를 못하는지 욕하게 되는 문제이다. 이 문제는 소수로 접근해서는 안되며, 분수의 차와 약분을 구현해서 풀어내야 한다. #include int gcd (int a, int b) { /* Ucildian gcd algorithm */ int rest = 1; if (a < b) {..

대학교/프로그래밍랩

[프로그래밍 랩] 3주차 - 실행 시간

문제 1. 현재 시간 현재 시간을 출력한다. //time_t : 시스템의 현재 시간을 가져온다. (1970년 기준 1초 단위로 증가 값) //time_t time(time_t *timer); //timer : 시간이 저장된 포인터의 위치 //반환값 : 1970년 1월 1일부터 경과한 시간을 돌려준다. //ctime : UTC로 시간을 지역 설정(우리나라 표준시간)에 맞게 시간을 바꾸어 준다. //char *ctime(const time_t *timer); //timer : 시간이 저장된 포인터 // struct tm *localtime(const time_t *timer) : 현재시간 //struct tm { /* a broken-down time */ //int tm_sec; /* seconds aft..

coding_test/programmers

lv1 / 내적 / C

https://programmers.co.kr/learn/courses/30/lessons/70128?language=c 코딩테스트 연습 - 내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 programmers.co.kr 내적을 구하는 문제 #include #include #include // a_len은 배열 a의 길이입니다. // b_len은 배열 b의 길이입니다. int solution(int a[], size_t a_len, int b[], size_t b_len) { ..

coding_test/BAEKJOON

백준 9020번 C언어 풀이

https://www.acmicpc.net/problem/9020 9020번: 골드바흐의 추측 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아 www.acmicpc.net 골드바흐의 추측을 구현하는 문제. 언제나 그렇듯 에라토스테네스의 체를 범위에 맞게 만든 후에, 조건에 맞는 골드바흐 파티션을 찾으면 된다. 파티션이 여러개 존재하는 경우 그 차이가 제일 적은 파티션을 출력해야 하는데, 이를 어떻게 처리할까 하다가, 처음부터 주어진 수의 절반값에서 시작하여 그 차이를 벌려가다가 파티션이 발견되면 끝내는 방식으로 접근하면 됐다. #include i..

coding_test/BAEKJOON

백준 2914번 C언어 풀이

https://www.acmicpc.net/problem/2914 2914번: 저작권 창영이는 노래 여러 개를 이어서 부르는 가수이다. 유명한 노래의 비슷한 멜로디를 이어서 부르면서 언제 곡이 넘어갔는지 모르게 만드는 것이 창영이 노래의 특징이다. 이런 노래로 상업적으 www.acmicpc.net 올림된 평균값과 개수가 주어졌을때 총 저작권수의 최솟값을 구하는 문제 아니 왜 저작권을 침해해서...... 입력이 소수로 된 평균값을 올린 값이 들어오는데, 원래의 평균은 (입력된 평균 - 1) ~ (입력된 평균)사이에 있는 값이기 때문에 저작권수의 최솟값은 다음과 같이 구하면 된다. 개수 x (입력된 평균 - 1) + 1 이제 이를 코드에 적용하면 된다. #include int main () { int n, ..

CodeJin
'분류 전체보기' 카테고리의 글 목록 (24 Page)