본문 바로가기
반응형

전체 글56

[연습 예제 1-2] 중앙값 구하기 세개의 정수를 입력받아 중앙값을 구하는 문제입니다. 문제의 해법을 한번에 해결하려 하지 마시고 기능을 나누어 기능에 맞는 함수를 구현하는 방식을 추천 드립니다. 그래야 나중에 복잡한 문제 해결할 때에도 많은 도움이 됩니다. 중앙값을 구하는 문제도 main함수에 모든 기능을 구현하려하면 어디서부터 어떻게 시작해야할지 모르게 됩니다. 그럴 때는 아래와 같이 간단히 생각나는 대로 구현해야할 함수 명만 적어두는 것도 도움이 됩니다. #include int main() { input() // 1. 값 입력 받기 get_mid() // 2. 중앙값 구하기 output() // 3. 중앙값 출력하기 } 이렇게만 적어두면 그 다음에 각 함수를 구현하기만 하면 되기 때문에 무엇을 해야할지 명확해집니다. 그럼 각 함수를 .. 2023. 2. 1.
[연습 예제 1-1] 최소 값 구하기 문제: 입력 받은 값 중 최소 값을 구하시오. a = 3, b = 4, c = 5 !! 순차구조, 선택구조 생각하면서 구현해보세요 !! 구현 코드는을 아래에 있습니다~ #include int a, b, c; void input() { printf("a값: "); scanf("%d", &a); printf("b값: "); scanf("%d", &b); printf("c값: "); scanf("%d", &c); } int comp(int a, int b, int c) { int min = a; if (min > b) min = b; if (min > c) min = c; return min; } int main() { int sol = -1; printf("세 정수의 최소값을 구합니다\n"); input().. 2023. 1. 31.
알고리즘이란? 알고리즘은 어떤 문제를, 명확한 정의를 통해 해결하는 것이다. 명확한 문제 정의가 정말 중요한 사항이다. 개인적으로 문제 정의가 70%, 해결 전략 20%, 구현 10%라고 생각한다. 그만큼 문제 정의가 중요하다는 뜻이다. 문제가 명확히 정의 되고, 해결 전략이 세워지면 그 다음은 금방 끝난다. 하지만 영화에서 코딩하는 장면이 현실과는 다르게 묘사 되어서 그런지 대부분 구현(코딩) 100%라고 생각하는 것 같다. 이제 알고리즘 기초에 대해서 이해하는 시간을 가져보려 한다. 우선 아래 코드를 한번 실행해보길 바란다. #include int a, b, c; void input() { //Sequential 구조 printf("a값: "); scanf("%d", &a); printf("b값: "); scanf.. 2023. 1. 31.
[c 알고리즘] DFS 실습 - 정올 (2167번) 책 꺼내기 part1 이번 문제는 DFS기법 중 조합 문제에 해당 된다. 입력 받은 n개의 숫자를 조합하여 합을 구해 책장의 높이를 초과하는 정도가 최소가 되는 것을 찾는 문제이다. DFS문제는 아래와 같은 순서로 생각해보는 것을 권장한다. 문제를 파악하여 Graph그리기 Graph의 각 노드마다 stack에 data가 어떻게 쌓이는지 확인하기 입력 받은 값들의 관계가 어떻게 되는지 파악하기. 위와 같은 순서를 추천하는 가장 큰 이유는 DFS를 재귀함수로 구현하기 때문이다. data가 stack에 어떻게 저장 되는지 눈으로 보지 않으면 정말 파악하기 어렵다. 위 그래프를 보면, A[0]을 선택했을 때 A[1]을 선택하거나 A[2]를 선택하는 경우가 있다. 그 후 A[1]을 선택했을 때는 이미 앞에서 (A[1], A[2])를 .. 2023. 1. 12.
반응형