C언어

https://www.acmicpc.net/problem/15988 15988번: 1, 2, 3 더하기 3 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net 일반적인 DP문제다.( https://solution-is-here.tistory.com/16?category=979031 ) (C언어)DP Dynamic Programming 설명 다이나믹 프로그래밍은 취업을 할려면 필수로 배워야 하는 함수 같았다. 다이나믹 프로그래밍을 쉽게 말하자면 계산횟수를 줄여주는 함수다. 아직 C언어를 제대로 배우지 못해 코딩을 많이 안 solution-is-here.tistory.com 그러나 정답률이 35%인 데는 이..
C언어에서 동적 할당을 사용하는 이유는 간단하다 시간을 단축하기 위해 사용하는 것이다. 1 2 3 4 5 6 7 8 9 #include #include int main() { int num; scanf("%d", &num); int card[num] = { 0, }; return 0; } cs 이렇게 num이란 숫자를 입력받았을 때 크기가 num인 배열을 만들고 싶다. 하지만 c언어에서는 이러한 배열 선언이 안돼서, 항상 입력할 수 있는 최댓값을 배열의 크기로 정하긴 했다. 그렇게 되면 입력한 값이 작아도 시간은 오래 걸리게 되는 일이 발생했다. 1. malloc 1 2 3 4 5 6 7 8 9 #include #include int main() { int num; scanf("%d", &num); in..
https://www.acmicpc.net/problem/1449 1449번: 수리공 항승 첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나 www.acmicpc.net 코드를 보기전에: 나는 이 문제를 오름차순과 반복문을 사용해 풀었다. 물이 새는곳의 개수와 테이프의 길이를 입력받는다. 그리고 물이 새는곳의 위치를 입력받아야 한다. 1 2 3 4 5 6 7 int N, L; int cnd = 0; scanf("%d %d", &N, &L); for (int a = 0; a
코드를 보기 전에: 이 문제는 정렬문제다. 그런데 나는 정렬을 사용해 풀다가 포기하고 브루트포스 알고리즘 처럼 문제를 풀었는데 풀렸다. 정렬을 사용 안하고 푼 정렬..? 홍철 없는 홍철 팀 같다 출력:첫째 줄부터 총 N개의 줄에 걸쳐 온라인 저지 회원을 나이 순, 나이가 같으면 가입한 순으로 한 줄에 한 명씩 나이와 이름을 공백으로 구분해 출력한다. 요즘 항상 무슨 함수를 사용할지 모르기때문에 헤더는 stdio,stdlib,string을 사용하는것 같다. 입력받는것이 나이와 이름이므로 구조체를 이용했다. 1 2 3 4 5 6 7 #include #include #include typedef struct p { int age; char name[201]; }w; cs 메인 함수에서는 회원의 수를 입력받고,..
코드를 보기전에: 필자는 이 문제를 퀵정렬을 이용해 풀었다 다른 함수로 푸는걸 보고싶은 분들은 다른 블로그의 글을 보기 바란다. 출력:첫째 줄에 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 출력한다. 첫번째 사람이 돈을 인출하는데 3분이 걸리고 두번째 사람은 인출하는데 2분이 걸린다고 하자. 그러면 첫번째 사람은 인출하는데 3분이 걸리고, 두번째 사람은 인출하는데 (3+2)분이 걸린다. *첫번째 사람이 인출할때 뒤에서 기다리기 때문. 그래서 정렬을 이용해 오름차순으로 나열하면 최솟값을 구할수 있다. 코드를 보면서 하나하나 설명하겠다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ..
스택을 영어로 설명하면 first in last out이라고 한다. 나는 이 말을 듣자마자 공병이 떠올랐다. ptsd와 함께. 쓸데없는 소리는 여기까지 하고, first in last out을 알아듣게 설명하자면 먼저 입력을 한 값이 나중에 나오고, 나중에 입력된 값이 먼저 나온다는 소리다. 출력할 때는 위에서부터 하고 입력할 때는 쌓아 올리는 형식으로 한다는 말이다. ㅇ스택 문제를 풀 때는 4개의 함수가 필요하다. - 공백상태를 검사하는 함수 - 포화상태를 검사하는 함수 - 삽입하는 함수 - 배출하는 함수 공백상태를 검사하는 함수를 설명하겠다. top이란 변수를 호출했다. top은 삽입을 하면 1씩 커지고, 배출을 하면 1씩 작아지는 변수다. 그러므로, 공백상태를 검사하는 함수에서 top이 0보다 작으..
코딩하는_대학생
'C언어' 카테고리의 글 목록