이 페이지의 글 목록

C언어에서 콘솔의 키 입력 받기 (윈도우즈)

이 포스트에서는 C언어에서 콘솔의 키 입력을 처리하는 방법을 설명합니다. 참고: 이 방법은 윈도우에서만 가능한 방법입니다. 여기에 사용된 <conio.h> 라이브러리는 윈도우만 지원하는 비표준 라이브러리입니다. 따라서 리눅스에서는 다른 방법으로 구현해야 합니다. 윈도우의 경우는 GUI 기반 프로그램이 주류이고 TUI는 옛 DOS 시절의 프로그램이나 리눅스 등에서 주로 볼 수 있습니다. 하지만 윈도우에서도 명령 프롬프트 창을 기반으로 돌아가는 TUI 프로그램이 … 더 보기 “C언어에서 콘솔의 키 입력 받기 (윈도우즈)”

C언어로 만든 간단한 가위바위보 게임

C언어로 만든 간단한 가위바위보 게임 소스입니다. 포트폴리오를 전시하기 위한 프로젝트의 일환으로, 워밍업 차원에서 C언어 콘솔 게임을 간단하게 만들어 본 것입니다. 게임을 세팅, 진행, 종료의 세 부분으로 나눠서 각 부분에 함수를 하나씩 선언하였고, 게임 진행에 필요한 변수는 구조체 형태로 선언한 후 포인터를 이용해 각 게임 함수를 넘나들며 해당 변수에 접근할 수 있도록 하였습니다. 게임 방법은 먼저 … 더 보기 “C언어로 만든 간단한 가위바위보 게임”

C언어에서 배열로 문자열 다루기

C언어에서 배열로 문자열을 다루는 방법을 설명합니다. C언어는 자바나 파이썬 등과는 다르게 문자열(string) 자료형이 따로 존재하지 않습니다. 그 대신 문자(char) 자료형이 있어서 문자의 배열로 문자열을 이루게 됩니다. C++에서는 string 클래스가 있어서 문자열을 편리하게 다룰 수 있지만, 오리지널 C에서는 문자의 배열 형태로 다루게 됩니다. 다음 코드를 봅시다. #include <stdio.h> int main() { char gfriend[6][6] = { “Sowon”, … 더 보기 “C언어에서 배열로 문자열 다루기”

파이썬으로 소인수분해 알고리즘 구현하기

이 포스트에서는 파이썬으로 소인수분해 알고리즘을 구현한 예를 소개합니다. 다음 코드를 봅시다. n = input(“2 이상의 자연수를 입력하세요: “) try: n = int(n) except ValueError: n = 0 if n >= 2: # Right print(“소인수분해할 수는 %d입니다.” % n) factorized_array = [] # Init m = n div, deg = 2, 0 while m > 1 … 더 보기 “파이썬으로 소인수분해 알고리즘 구현하기”

파이썬으로 구현한 체스판식 2차원 배열 채우기

이 포스트에서는 파이썬으로 체스판식 2차원 배열 채우기 알고리즘을 구현한 예를 소개합니다. 앞서 포스팅한 파이썬으로 구현한 ㄹ자 배열 알고리즘의 예를 응용하여, 이번에는 체스판식으로 채우는 예제를 파이썬으로 구현해 보았습니다. 구현하기에 앞서, 다음과 같이 가상의 과제를 설정하였습니다. 《과제》 코로나19의 확산을 막기 위해 정부는 사회적 거리두기 정책을 시행하고 있다. 이에 어느 한 소극장에서는 정부의 사회적 거리두기 정책에 동참하기 위해 … 더 보기 “파이썬으로 구현한 체스판식 2차원 배열 채우기”

C언어 헤더 사용하기

이 포스트에서는 C언어에서 헤더를 사용하는 방법에 대해서 포스팅합니다. 일단, 다음 코드를 봅시다. #include <stdio.h> int sum(int a, int b) { return a + b; } int main() { printf(“1 + 2 = %d\n”, sum(1, 2) ); return 0; } 함수를 정의하고 출력에 사용한 간단한 예입니다. 실제로 이와 같이 선언하는 함수는 메인 함수보다 앞에 와야 합니다. … 더 보기 “C언어 헤더 사용하기”

파이썬으로 구현한 달팽이집 배열 알고리즘의 예

이 포스트에서는 파이썬으로 달팽이집 배열 알고리즘을 구현한 예를 소개합니다. 개정되기 전의 정보처리기사 실기 문제 중에 2차원 배열에 숫자를 달팽이집 형태로 1씩 증가시켜서 넣는 알고리즘을 구현하는 문제가 있었습니다. 여기서는 이 알고리즘을 구현해 보았습니다. 코드는 다음과 같습니다. ※주: 정보처리기사 시험은 2020년부터 NCS 기반으로 개정됨에 따라 기존의 알고리즘 구현 문제는 폐지되고 프로그래밍 언어 활용으로 대체되어 순서도 빈칸 채우기 … 더 보기 “파이썬으로 구현한 달팽이집 배열 알고리즘의 예”

파이썬으로 구현한 ㄹ자 배열 알고리즘의 예

이 포스트에서는 파이썬으로 ㄹ자 배열 알고리즘을 구현한 예를 소개합니다. 개정되기 전의 정보처리기사 실기 문제 중에 2차원 배열에 숫자를 ㄹ자로 넣는 알고리즘을 구현하는 문제가 있었습니다. 여기서는 이 알고리즘을 약간 다른 형태로 구현해 보았습니다. 코드는 다음과 같습니다. ※주: 정보처리기사 시험은 2020년부터 NCS 기반으로 개정됨에 따라 기존의 알고리즘 구현 문제는 폐지되고 프로그래밍 언어 활용으로 대체되어 순서도 빈칸 채우기 … 더 보기 “파이썬으로 구현한 ㄹ자 배열 알고리즘의 예”

C언어의 포인터에 대한 간단한 설명

이 포스트에서는 C언어에 사용되는 포인터에 대한 간단한 설명을 서술합니다. C언어 프로그래밍을 강력하게 만들어주어 ‘C언어의 꽃’이라고도 불리고, 또 여기서 어려움을 느껴 포기하는 초심자들도 많은 것으로 알려져 있는데, 간단히 설명하면 어떤 값을 가리키기 위한 형식을 말합니다. 어느 프로그래밍 언어나 다 마찬가지겠지만 변수를 선언하면 그 값은 메모리에 저장이 됩니다. 우리가 사는 집이나 직장, 학교 등의 건물을 보면 번지수가 … 더 보기 “C언어의 포인터에 대한 간단한 설명”

C언어에서 int main()을 쓰는 이유, 무엇인가?

C언어를 입문하면 아마도 대부분은 다음과 같은 코드를 가장 먼저 접할 것입니다. #include <stdio.h> int main() { printf(“Hello, world!\n”); return 0; } 익히 아시다시피 화면에 Hello, world!라는 문구를 출력하는 프로그램입니다. 그런데 말입니다. 코드 구조를 보면 프로그램의 시작과 함께 호출되는, 메인이 되는 함수가 정수형(int)으로 선언되어 있고, 종료시 0이라는 값을 반환하는 것을 볼 수 있습니다. 아마 이를 처음 … 더 보기 “C언어에서 int main()을 쓰는 이유, 무엇인가?”