전체 글 64

[TeamH4C_FTZ] Trainer1 ~ Trainer10

이번에는 해커스쿨에서 배포하는 워게임인 FTZ를 풀어보도록 하겠습니다. FTZ는 여러 가지 기법을 무료로 트레이닝할 수 있도록 도와주는 서버입니다. FTZ는 구글링을 통해 다운로드할 수 있으며 FTZ를 사용하기 위해 VMware과 putty를 다운로드하시면 됩니다. 혹시 모르기에 따로 링크는 하지 않도록 하겠습니다. 다운로드한 FTZ를 파일을 VMware로 열면 아래와 같은 화면을 확인하실 수 있으며 엔터를 눌러 red hat리눅스를 접속하면 됩니다. 리눅스에 들어가면 ftz login이라 표시되어 있는 화면이 보이실 텐데 아이디는 root로 로그인하시면 됩니다. 비밀번호는 hackerschool을 입력하시고 엔터를 클릭하면 되는데 패스워드는 안 보이는 것이 정상이니 여러 번 누를 필요 없이 한 번만 제..

[TeamH4C_C언어] 문자열과 구조체

안녕하세여! 이번 정리는 문자열을 배열에 저장하거나 포인터 문자열 출력을 해보도록 하겠습니다. 문자열 문자열의 초기화 문자열 입력하여 저장 문자열의 확장기능 문자열 길이 문자열 비교 문자열 복사 문자열 붙여넣기 문자열로 변환 문자열 검색 문자열 자르기 문자열 정수, 실수로 변환 회문, N-gram 간단한 회문과 N-gram 설명 구조체 구조체 정의 구조체 별칭 구조체 포인터 간단한 구조체 예제 문자열의 사용 C언어에서 문자열을 사용하기 위해서는 아래와 같이 기본적인 형태로 문자열을 선언하거나 초기화가 가능합니다. #include int main() { char* ptr1 = "string"; char* ptr2[] = { "string" }; char arr1[] = "string"; char arr2[..

[TeamH4C_C언어] 포인터를 활용한 문제

이번에 CodeUp에 나와있는 문제들을 포인터를 사용하여 풀어보겠습니다. 문제는 순서대로 1차원 배열 동적 할당, 2차원 배열 동적 할당, 특정 조건의 수 출력, 함수를 이용하여 비교출력, 특정 순서로 출력의 문제를 풀어봤습니다. 문제풀이 1차원 배열 문제로 배열의 형태가 아닌 포인터 형태로 나타내기 위해 malloc함수를 사용하여 동적 할당 형식으로 변수를 생성하고 변수를 역참조하며 값을 입력하는 방식으로 각각의 주소에 값을 넣어 입력값을 입력받았습니다. 그 후, 가장 빠른 번호를 출력시키기 위해 임시 저장 변수에 첫 번째 포인터의 값을 저장시킨 후 비교하여 가장 작은 값을 출력하도록 코드를 작성할 수 있습니다. 이번에는 2차 배열 문제로 이중 포인터를 사용하여 2차 배열의 형식을 만들어 문제를 풀었습..

[TeamH4C_C언어] 포인터의 활용

이번에는 C언어에서 사용되는 포인터에 대해 정리하겠습니다. 포인터는 주소 값을 이용하는 변수로서 애스터리스크(*)를 이용하여 가리키는 곳의 주소를 활용할 수 있습니다. 이번 정리에서는 아래와 같은 주제로 정리되어 있습니다. 포인터 단일 포인터 다중 포인터 메모리 동적 할당 메모리를 특정 값으로 초기화 배열 1차원 배열 2차원 배열 배열과 포인터의 응용 포인터의 사용 값을 변수에 저장하면 메모리 공간에 할당하는 방식으로 저장이 됩니다. 변수는 메모리의 특정 장소에 위치함으로 메모리 주소로도 표현할 수 있습니다. 변수의 메모리 주소를 구할 때 변수 앞에 주소 연산자(&)를 붙이고 서식 지정자를 pointer를 뜻하는 %p로 지정하거나 16진수 형태로 출력(%x)하면 메모리 주소를 확인할 수 있습니다. 이때,..

[TeamH4C_C언어] 다시 정리하는 CodeUp

이번에는 CodeUp에서 파이썬으로 풀었던 기초 100제 문제 중 가장 기억에 남았던 문제를 C언어로 풀어보았습니다. 크게 반복문, 조건문, 연산, 배열에 대해 정리하였습니다. Memorable CodeUp 첫 번째 문제로 기초 100제의 1079번 문제입니다. 입력이 반복되며 문자 'q'가 입력될 때까지 문자를 출력하는 문제입니다. 이 문제는 입력을 한 번은 무조건 받아야 하는 문제여서 반복문 중 do while반복문을 사용하여 푼 문제입니다. 반복 코드를 무조건 한번 실행하는 형식으로 기억에 남던 문제입니다. 문제의 풀이는 아래와 같습니다. 문자의 자료형인 char 변수를 선언하고 do while반복문을 활용하는 방식입니다. 여기서 scanf() 함수 뒤에 getchar() 함수가 이용되었는데 get..

[TeamH4C_C언어] 반복의 loop

반복되는 코드를 직접 작성하는 것은 불가능에 가깝고 가능하더라도 복잡한 코드가 될 것입니다. 그렇기에 프로그래밍 언어에서는 반복문이라는 것을 통해 반복되는 코드를 간단하게 작성할 수 있도록 도와줍니다. 반복문의 시작에 앞서 값에 따라 원하는 코드가 실행되는 조건문에 대해 정리하고 반복문에 대해 정리하겠습니다. switch 조건문 if와 else는 조건식이 참 또는 거짓일 때 처리가 가능하였지만, 두 가지 조건 말고 다양한 조건일 때 처리할 수 있는 조건문이 switch조건문입니다. switch 분기문은 조건이 많을 때 유용하며, 기본형식은 다음과 같습니다. switch(판별되는 값, 변수) { case 1: 코드; break; case 2:// 값이 2와 3일 때의 코드 실행 부분이 같을 때 처리방법 c..

[TeamH4C_C언어] 언어의 계산

이번에는 연산에 대하여 정리하겠습니다. 일반적인 수학 연산과 비슷하며 몇몇의 내용만 프로그램적인 내용이 존재합니다. 사칙연산 덧셈과 뺄셈, 일반적인 연산의 경우 계산의 결과대로 출력됩니다. 계산에서 오차가 생길 수 있는데 더 큰 자료형으로 선언하거나 자료형에 맞도록 계산하면 됩니다. 프로그래밍에서는 변수의 값에서 하나의 값을 더하거나 뺄 수 있으며 여러 가지 계산을 활용할 수 있습니다. 변수 = 변수 + 값의 형태로 자기 자신의 값을 변화시키는 형식입니다. 식을 단축하여 [변수 += 값;]의 형태로 단축이 되며 다른 연산도 가능합니다. 여기서, 여러 연산이 있을 때, 연산의 순서는 다음과 같습니다. 증가 감소 연산을 간단히 표현할 수 있는데 증가, 감소 연산자를 통해 가능합니다. ++, --를 통해 정수..

[TeamH4C_C언어] 자료형들의 사용

여러 자료형들의 사용에 대해 정리해보겠습니다. 서식 지정자 문자를 표현하기 위해 printf함수를 사용합니다. printf함수는 가변 인자 값을 출력할 수 있는데 가변 인수로부터 넘겨받은 변수들을 출력하기 위해서 자료형에 대한 정보가 있어야 합니다. 이러한 자료형을 서식 지정자라 하며 서식 지정자의 종류는 다음과 같습니다. 변수의 사용 값들을 저장하여 사용하기 위해 변수가 필요합니다. 변수는 리터럴 값을 저장하는 공간으로 변경될 값을 저장하는데 용이하며, 변수를 만들기 위해 자료형(Type)을 선언하고 변수명을 지정하는 형식으로 변수는 만들어집니다. [자료형 변수 이름;] 형식으로 만드는 과정이며 변수를 선언한다라 하며, 선언과 동시에 변수의 값을 초기화할 수 있는데 이는 변수를 초기화한다라는 뜻을 가집..

[TeamH4C_C언어] 기본 문법

이번에는 기본 출력과 그에 대한 구조를 살펴보겠습니다. 기본 출력은 일반적으로 프로그래밍 언어를 처음 시작할 때 사용되는 "Hello, world!"에 대하여 출력하는 형식의 문법을 코드로 작성하겠습니다. 기본 출력 #include int main() { printf("Hello, world!\n"); return 0; } 기본 구조 C언어가 기본적으로 컴파일시키기 위해서는 #include 를 포함하여야 C언어의 기능들을 활용하여 컴파일할 수 있습니다. 기본적으로 출력을 하기 위해 필요한 것을 담은 헤더 파일은 stdio.h파일이기에 구문을 출력하기 위해서는 이 헤더 파일은 코드에 포함시켜야 할 것입니다. 이와 같이 외부의 파일을 포함시키는 것을 전처리기라 합니다. int main(void)는 C언어의 ..

[TeamH4C_C언어] C의 시작

안녕하세요! 이번 프로그래밍 언어는 C언어입니다. 이번 정리는 코딩 도장 영상을 보고 정리하였습니다. C언어는 메모리와 하드웨어를 직접 제어할 수 있어 메모리 관리나 하드웨어 관련 내용 같은 컴퓨터의 동작원리를 쉽게 이해할 수 있는 언어입니다. C언어의 역사 C언어는 1972년 벨 연구소(Bell Laboratories)에서 켄 톰슨과 데니스 리치가 개발한 프로그래밍 언어입니다. 켄 톰슨은 BCPL언어를 개조하여 B언어를 만들었고, 데니스 리치가 B언어를 개선하여 C언어로 만들어 C언어가 탄생한 것입니다. 당시 유닉스 운영체제에서 사용하기 위해 개발된 언어로 현재까지 수많은 운영체제 커널이 C로 만들어지고 있습니다. Visual Studio 설치 C언어를 시작하기 위해서는 통합 개발 환경이 필요합니다. ..