010-2135-9730무료 상담
연습 루틴

C 언어 기초 문제 30선 푸는 순서

C 언어 기초 문제는 문법 순서를 따라 쌓아 올리듯 풀어야 합니다. 입출력과 연산에서 시작해 조건문, 반복문, 배열, 함수를 거쳐 포인터와 구조체로 넘어가는 순서입니다. 30문제를 다섯 단계로 나눠 한 단계씩 끝내고, 문제마다 직접 손으로 실행 과정을 따라가 보면 게임 프로그래밍에 필요한 기초 체력이 생깁니다. 아래 문제들은 특정 문제집이 아니라 단계별로 꼭 풀어 볼 유형을 묶은 것입니다.

읽는 시간 약 7분게임프로그래밍
게임프로그래밍 과정
이 글과 연결된 과정게임프로그래밍 과정 알아보기

최근에는 AI 코딩 도구를 쓰는 개발자가 늘었지만, 생성된 코드가 맞는지 판단하려면 결국 기본기가 필요합니다. 수업에서는 직접 짜는 연습을 충분히 한 뒤 AI…

문제 순서가 중요한 이유: C는 앞 개념 위에 뒤 개념이 얹힙니다

C 언어는 개념끼리 의존 관계가 뚜렷합니다. 배열을 이해하려면 반복문이 익숙해야 하고, 포인터를 이해하려면 배열과 메모리 주소 개념이 잡혀 있어야 합니다. 그래서 어려운 문제부터 도전하면 무엇을 모르는지조차 알기 어렵습니다. 인터넷에서 유명한 문제를 무작위로 푸는 것보다 순서를 정해 하나씩 올라가는 편이 훨씬 빠릅니다.

게임 프로그래밍과도 직결됩니다. 캐릭터 체력 계산은 연산과 조건문, 적 여러 마리 관리는 배열과 반복문, 캐릭터 정보를 묶는 일은 구조체, 메모리를 효율적으로 다루는 일은 포인터의 영역입니다. C 언어 기초 문제를 단계별로 풀어 두면 이후 C++와 게임 엔진을 배울 때 이 개념들이 그대로 다시 나옵니다.

1단계(1~6번): 입출력과 연산

  • 두 정수를 입력받아 사칙연산 결과 출력하기
  • 나눗셈의 몫과 나머지를 따로 출력하기
  • 섭씨를 화씨로 바꾸기(실수형 다루기)
  • 초 단위 시간을 시, 분, 초로 나눠 출력하기
  • 두 변수 값 서로 바꾸기
  • 정수 하나를 입력받아 각 자릿수 합 구하기

이 단계에서는 정수형과 실수형의 차이, 정수끼리 나누면 소수점이 버려진다는 점, 나머지 연산자의 쓰임을 확실히 익힙니다. 특히 시간 나누기 문제는 게임에서 남은 시간이나 쿨타임을 표시할 때 실제로 쓰는 계산입니다. 입력 형식이 조금만 달라도 오류가 나기 때문에 입력 함수의 형식 지정자를 정확히 쓰는 연습도 함께 됩니다.

2단계(7~12번): 조건문과 3단계(13~18번): 반복문

조건문 문제는 점수를 입력받아 등급 매기기, 세 수 중 가장 큰 수 찾기, 윤년 판별하기, 홀짝 판별하기, 간단한 가위바위보 승패 판정, 체력 값에 따른 상태 메시지 출력 정도로 구성합니다. 윤년 판별처럼 조건이 여러 개 겹치는 문제에서 논리 연산자의 우선순위를 헷갈리기 쉬우니, 괄호로 의도를 분명히 하는 습관을 들입니다.

반복문 문제는 1부터 N까지 합, 구구단 출력, 별 찍기로 삼각형과 피라미드 만들기, 약수 구하기, 소수 판별, 숫자 맞히기 게임 순서로 풉니다. 별 찍기는 단순해 보여도 이중 반복문에서 바깥 반복과 안쪽 반복의 관계를 이해하는 데 아주 좋습니다. 숫자 맞히기 게임은 무작위 수, 반복, 조건이 모두 들어가는 첫 번째 작은 게임이 됩니다.

별 찍기에서 막히면 줄 번호와 그 줄에 찍히는 별 개수를 표로 적어 보세요. 규칙이 숫자로 보이면 반복문 조건을 쓰기 쉬워집니다.

4단계(19~24번): 배열과 함수

  • 배열에 점수 10개를 넣고 평균, 최댓값, 최솟값 구하기
  • 배열 순서 뒤집기
  • 버블 정렬로 오름차순 정렬하기
  • 문자열 길이를 직접 세는 함수 만들기
  • 두 수를 받아 큰 수를 돌려주는 함수 만들기
  • 재귀 함수로 팩토리얼 계산하기

배열 문제에서 가장 흔한 실수는 인덱스 범위를 벗어나는 것입니다. 크기가 10인 배열의 마지막 칸 번호가 9라는 점을 놓치면 엉뚱한 메모리를 건드리게 됩니다. C는 이런 실수를 바로 알려 주지 않는 경우가 많아서, 반복문 조건을 쓸 때마다 마지막 번호를 손으로 확인하는 습관이 필요합니다. 함수 문제에서는 값이 복사되어 넘어간다는 점을 꼭 이해하고 넘어가세요. 이것이 다음 단계 포인터의 출발점입니다.

5단계(25~30번): 포인터와 구조체

마지막 단계는 포인터로 두 변수 값 바꾸는 함수 만들기, 포인터로 배열 순회하기, 문자열 복사 함수 직접 만들기, 구조체로 캐릭터 정보(이름, 체력, 공격력) 저장하기, 구조체 배열로 몬스터 여러 마리 관리하기, 동적 메모리로 크기가 정해지지 않은 배열 만들기로 구성합니다.

포인터는 변수가 저장된 메모리 위치를 담는 변수입니다. 주소가 적힌 쪽지라고 생각하면 이해하기 쉽습니다. 4단계에서 함수 안에서 값을 바꿔도 밖의 변수가 그대로였던 문제를, 주소를 넘기는 방식으로 해결해 보면 포인터가 왜 필요한지 체감됩니다. 구조체 배열로 몬스터를 관리하는 문제는 게임 개발에서 데이터를 다루는 방식과 가장 비슷하므로 시간을 들여 직접 기능을 덧붙여 보는 것을 권합니다.

동적 메모리 문제에서는 할당한 메모리를 다 쓴 뒤 반드시 해제하는 것까지가 한 문제입니다. 해제를 빠뜨리는 습관은 나중에 게임에서 메모리가 새는 원인이 됩니다.

이름과 연락처만 남기면 담당 멘토가 연락드립니다상담 가능 시간 평일·주말 · 전화 010-2135-9730

문제를 푸는 방법과 막혔을 때의 규칙

  1. 코드를 쓰기 전에 입력과 출력 예시를 손으로 적는다
  2. 풀이 순서를 한국어 문장으로 먼저 쓴다
  3. 코드를 쓰고, 변수 값이 어떻게 바뀌는지 표로 따라간다
  4. 30분 넘게 막히면 힌트를 보되, 답을 본 뒤에는 지우고 다시 쓴다
  5. 다 푼 문제는 일주일 뒤 보지 않고 한 번 더 푼다

하루에 두세 문제씩 풀면 몇 주 안에 한 바퀴를 돌 수 있지만, 속도보다 이해가 우선입니다. 컴파일 오류 메시지는 겁내지 말고 첫 줄부터 읽는 습관을 들이세요. 오류가 여러 개 나와도 대개 첫 번째 오류를 고치면 나머지가 함께 사라집니다. 오류 메시지와 해결 방법을 노트에 모아 두면 같은 실수를 반복하는 시간이 줄어듭니다. 한 바퀴를 마치면 숫자 맞히기 게임과 몬스터 구조체 문제를 합쳐 콘솔용 작은 전투 게임을 만들어 보세요. 내가 어느 단계에서 자꾸 막히는지 확인하고 싶다면, SBS아카데미게임학원 게임프로그래밍 과정 상담에서 풀이 코드를 보며 다음 공부 순서를 함께 정할 수 있습니다.

자주 묻는 질문

C 언어를 건너뛰고 바로 C#이나 C++을 배워도 되나요?

가능합니다. 다만 C에서 배우는 메모리와 포인터 개념은 C++ 게임 프로그래밍에서 그대로 쓰이므로, 기초 문제 수준까지는 C로 익혀 두면 이해가 깊어집니다.

온라인 저지 사이트를 써야 하나요?

채점이 자동으로 되어 편리합니다. 다만 맞았다는 결과만 보고 넘어가지 말고, 내 코드가 왜 맞는지 설명할 수 있는지 확인하는 것이 더 중요합니다.

TIP내 상황에 맞는 답이 필요하다면 무료 상담에서 지금 수준과 목표를 기준으로 구체적으로 안내해 드립니다.

가까운 캠퍼스에서 게임프로그래밍 알아보기

사는 곳과 가까운 캠퍼스를 고르면 수업 내용, 오시는 길, 상담 신청을 한 번에 볼 수 있습니다.

함께 읽으면 좋은 글

Free consulting

게임프로그래밍, 내 상황에서는 어떻게 시작할까요?

글에서 다룬 내용을 내 실력과 목표에 맞춰 담당 멘토가 구체적으로 정리해 드립니다.

  1. 상담 신청서 접수
  2. 담당 멘토가 연락드림
  3. 방문 또는 전화로 진로·과정 상담
전화로 바로 상담010-2135-9730
전화 상담상담 신청