파이썬으로 위드마크 공식 구현해 보기

이 포스트에서는 파이썬으로 위드마크 공식을 구현하는 코드를 간략하게 작성합니다. 가수 김호중의 음주운전 사건이 언론에 오르며 떠들썩한 가운데 ‘위드마크 공식’이라는 용어가 나와 화제가 되기도 했습니다. 위드마크 공식이란 1931년 스웨덴의 생리학자 에릭 마테오 프로셰 위드마크(Erik Matteo Prochet Widmark)가 고안한 공식으로, 음주운전 후 너무 오랜 시간이 지나 정확한 혈중 알코올 농도를 알 수 없을 경우 음주운전 시점의 혈중 … “파이썬으로 위드마크 공식 구현해 보기” 더 읽기

파이썬으로 콰인 만들기

이 포스트에서는 파이썬으로 콰인을 만드는 방법을 서술합니다. 콰인(Quine)은 미국의 철학자 윌러드 밴 오먼 콰인(Willard Van Orman Quine)에서 유래한 것으로, 자기 자신의 소스 코드를 출력하는 프로그램을 말합니다. 소스 코드와 출력 결과가 토씨 하나 틀리지 않고 완전히 같아야 하기 때문에 만들기가 까다로운 것으로 알려져 있는데, 파이썬에서는 문자열 포매팅 기호를 이용해 좀 더 간단하게 만들 수 있습니다. 우선 … “파이썬으로 콰인 만들기” 더 읽기

파이썬으로 피즈버즈 숫자 출력 프로그램 만들기

파이썬으로 만든 피즈버즈(FizzBuzz) 출력 프로그램 예제입니다. 피즈버즈 게임이란 우리나라의 369 게임과 비슷한 놀이로, 숫자를 1부터 하나씩 늘려가면서 부르되 3의 배수인 경우 ‘Fizz’로, 5의 배수인 경우 ‘Buzz’로, 3의 배수이면서 동시의 5의 배수인 경우 ‘FizzBuzz’로 부르는 놀이입니다. 여기서는 1부터 100까지의 숫자 중에서 Fizz와 Buzz를 출력하는(둘 다 아닌 경우 그 숫자를 출력) 예를 보여드립니다. for i in range(1, … “파이썬으로 피즈버즈 숫자 출력 프로그램 만들기” 더 읽기

C언어의 포인터 설명 (배열 접근)

이 포스트에서는 C언어에서 포인터로 배열에 접근하는 방법을 설명합니다. 우선 다음 코드를 봅시다. 다음 코드는 2020년 정보처리기사 실기시험 문제로 출제된 바 있는 C언어 코드입니다. #include <stdio.h> int main() { char *p = “KOREA”; printf(“%s\n”, p); printf(“%s\n”, p+3); printf(“%c\n”, *p); printf(“%c\n”, *(p+3)); printf(“%c\n”, *p+2); } 이 코드는 다음과 같이 실행됩니다. KOREA EA K E M 이렇게 나오는 … “C언어의 포인터 설명 (배열 접근)” 더 읽기

C++의 변수 입력 예제

C++의 Hello, world! 예제 편에서 iostream 라이브러리를 통해 오리지널 C언어의 printf() 함수를 대신해서 std::cout 객체를 사용해 콘솔에 텍스트를 출력하는 방법을 알아보았습니다. 여기서는 iostream 라이브러리를 통해 입력받은 값을 변수에 대입하는 방법을 알아보기로 합니다. 먼저, 오리지널 C언어로 된 다음 코드를 봅시다. #include <stdio.h> struct Profile { char name[20]; int age; }; int main() { struct Profile pr; … “C++의 변수 입력 예제” 더 읽기

C++의 Hello, world! 예제

C++의 Hello, world! 문구를 출력하는 프로그램 예제입니다. 먼저, 오리지널 C언어에서 Hello, world! 문구를 출력하는 프로그램의 소스를 보겠습니다. #include <stdio.h> int main() { printf(“Hello, world!\n”); return 0; } 이 소스코드는 C++에서도 실행이 가능합니다. 또한, C++에서는 라이브러리를 <cstdio>로 써도 <stdio.h>로 쓴 것과 같습니다. C++에서는 이 stdio.h 라이브러리와 거의 같은 기능을 하는 라이브러리로 iostream이 있습니다. 속도는 다소 느려지지만, … “C++의 Hello, world! 예제” 더 읽기

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

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