본문 바로가기

C언어 강좌

(15)
[C언어_15] C언어 문제 풀이 #5 안녕하세요. 이번 시간에는 재귀함수를 이용하는 문제를 풀어보려고 합니다. | 지난 강좌 Review swdoodle.tistory.com/19 [C언어_14] 재귀함수의 개념과 공부하는 이유 안녕하세요, 이번 포스팅에서는 지난 강좌에서 배웠던 사용자 정의 함수 개념의 심화적인 내용을 배울 것입니다. 바로 "재귀함수"라는 것인데요, 오늘 이것을 배우는 이유와 그 개념에 대해서 swdoodle.tistory.com 지난시간에는 재귀함수의 개념과 공부하는 이유에 대해 살펴보았습니다. 이번 시간에는 재귀함수를 좀더 활용한 문제를 살펴보겠습니다. | 피보나치 수열 여러분은 피보나치 수열에 대해 알고 계신가요? 피보나치 수열을은 아래와 같이 처음 두 항을 0과 1로 한 후, 그 다음 항부터는 바로 앞의 두 개의 항..
[C언어_14] 재귀함수의 개념과 공부하는 이유 안녕하세요, 이번 포스팅에서는 지난 강좌에서 배웠던 사용자 정의 함수 개념의 심화적인 내용을 배울 것입니다. 바로 "재귀함수"라는 것인데요, 오늘 이것을 배우는 이유와 그 개념에 대해서 살펴보고자 합니다. step by step으로 차근차근 따라오시면 어렵지 않을 것입니다. | 재귀란 무엇인가? 우선 재귀함수의 '재귀'라는 단어의 의미를 알아보겠습니다. 컴퓨터 과학에 있어서 재귀(再歸, Recursion)는 자신을 정의할 때 자기 자신을 재참조하는 방법을 뜻하며, 이를 프로그래밍에 적용한 재귀 호출(Recursive call)의 형태로 많이 사용된다. 또 사진이나 그림 등에서 재귀의 형태를 사용하는 경우도 있다. - 위키백과 위키백과에서 가져온 재귀의 컴퓨터 과학 측면에서의 정의입니다. 쉽게 말해서, "..
[C언어_13] 사용자 정의 함수, 프로토타입(Prototype) 안녕하세요, 이번 포스팅에서는 사용자 정의 함수를 알아보는 시간을 갖도록 하겠습니다. 함수란 일종의 작은 프로그램 단위라고 생각하시면 되는데요. 이때까지 배웠던, printf문, scanf문과 같은 것들은 C언어에서 기본으로 제공되는 함수들이었습니다. 그리고 계속 써왔던 main() 또한 함수였습니다. 사용자 정의 함수는 이러한 함수 외에 우리가 만들 수 있는 함수를 의미합니다. | 함수를 만들어야 하는 이유 프로그램의 구현은 복잡한 문제를 해결하는 것에 비유를 할 수 있습니다. 따라서 main()이라는 하나의 함수 안에서만 문제를 해결하려 드는 것은 아무런 대책 없이 무작정 문제를 해결하려 드는 것과 마찬가지입니다. 구현하기에 앞서 어떤 기능들이 있는지 분석하고, 그 분석결과를 바탕으로 작은 크기의 함..
[C언어_12] C언어 문제 풀이 #4 안녕하세요. 이번 포스팅에서는 2차원 배열을 이용한 문제를 풀어보려고 합니다. | 지난 강좌 Review swdoodle.tistory.com/16 [C언어_11] 2차원 배열과 메모리의 특성 안녕하세요, 이번 포스팅에서는 1차원 배열에 이어서 2차원 배열에 대해 살펴보겠습니다. 또한 2차원 배열은 실제 컴퓨터 메모리공간상에서 어떤 식으로 구현되는지 심층적으로 살펴보겠습니다 swdoodle.tistory.com 지난시간에는 2차원 배열과 메모리의 특성에 대해 알아보았습니다. 이번시간에는 2차원 배열을 보다 쉽게 이해할 수 있는 문제를 가져왔습니다. | C언어 문제 이번 문제는 9x9 크기의 지뢰찾기 게임을 만드는 것입니다. 문제 출처 : codeup.kr/problem.php?id=1524 지뢰 찾기 1..
[C언어_11] 2차원 배열과 메모리의 특성 안녕하세요, 이번 포스팅에서는 1차원 배열에 이어서 2차원 배열에 대해 살펴보겠습니다. 또한 2차원 배열은 실제 컴퓨터 메모리공간상에서 어떤 식으로 구현되는지 심층적으로 살펴보겠습니다. | 2차원 배열 앞선 강좌에서 1차원 배열을 설명할 때, 이러한 예시를 들었었습니다. void main() { int floor101, floor102, floor103, floor104; // 1층 101호부터 104호까지 int floor201, floor202, floor203, floor204; // 2층 201호부터 204호까지 int floor301, floor302, floor303, floor304; // 3층 301호부터 304호까지 int floor401, floor402, floor403, floor4..
[C언어_10] 1차원 배열 & 배열을 이용한 문자열 처리 안녕하세요, 이번 포스팅에서는 1차원 배열과 배열을 이용한 문자열 변수 표현에 대해 알아보는 시간을 갖도록 하겠습니다. 단순하게 배열은 '둘 이상의 변수를 모아 놓은 것'으로 설명할 수 있습니다. 하지만 선언방법부터 접근방법까지 일반적인 변수들과는 차이가 있습니다. | 배열이란 무엇인가? 다수의 데이터를 저장하고 처리하는 경우에 유용하게 사용할 수 있는 것이 배열입니다. 예를 들어서, 'A아파트'의 가구별 가족 수를 저장하는 프로그램을 만든다고 가정해봅시다. 'A아파트'는 10층까지 있고 각 층에는 4가구씩 살고 있습니다. 그렇다면 가구별 가족 수의 기록을 위해서는 총 40개의 변수를 선언해야 하는데, 이를 위해서는 아마도 다음과 같이 코드를 작성해야 할 것입니다. void main() { int flo..
[C언어_09] C언어 문제 풀이 #3 안녕하세요. 이번시간에는 C언어 문제를 풀어보는 시간을 가지려고 합니다. | 지난 강좌 Review 지난 강좌 보기 : [C언어_08] 중첩 반복문/무한루프: 문제풀이에 어떻게 응용하는가 [C언어_08] 중첩 반복문/무한루프: 문제풀이에 어떻게 응용하는가 안녕하세요, 이번 시간에는 앞서 배웠던 반복문을 조금 더 심화적으로 살펴볼 것입니다. 또한 중첩 반복문이나 무한 루프는 개념적인 부분보다는 어떻게 응용하는가가 중요하기 때문에 어떠한 swdoodle.tistory.com 지난 시간에는 반복문을 응용하여 중첩 반복문과 무한 루프를 활용하는 법을 배웠습니다. 이번 시간에는 이해하기 어려운 중첩 반복문을 문제를 통해 알아보도록 합시다. | C언어 문제 이번문제는 사진과 비슷하게 구구단을 출력해보는 프로그램을 ..
[C언어_08] 중첩 반복문/무한루프: 문제풀이에 어떻게 응용하는가 안녕하세요, 이번 시간에는 앞서 배웠던 반복문을 조금 더 심화적으로 살펴볼 것입니다. 또한 중첩 반복문이나 무한 루프는 개념적인 부분보다는 어떻게 응용하는가가 중요하기 때문에 어떠한 논리로 접근해야 하는지 알려드리겠습니다. | 중첩 반복문(Nested Loop) 중첩 반복문이란, 말 그대로 반복문이 중첩되어있는 구조, 즉 반복문 속에 반복문이 존재하는 구조를 말합니다. 앞선 강좌에서 배웠던 기본적인 반복문을 잘 이해했다면, 이 파트를 이해하는 것도 어렵지 않을 것입니다. 우선 가장 기본적인 중첩반복문 사용 예제를 보여드리겠습니다. int i, j; int n = 5; for(i = 0; i < n; i++){ for(j = 0; j < n; j++){ printf("*"); } printf("\n"); ..