본문 바로가기

전체 글140

[아무문제] Pseudo-Palindrome Checker2 대칭되는 문자들만 사용하여 최대한으로 길게 새로운 문자열을 만들어라 Input: ABCDA Output(순서는 달라도 됨): ABA Stack스택 사용 #include #include #include #define MAX_STACK10 #define TRUE1 #define FALSE0 typedef char Data; typedef struct { Data items[MAX_STACK]; int top; }Stack; void InitStack(Stack* pstack) { pstack->top = -1; } int IsFull(Stack* pstack) { if(pstack->top == MAX_STACK - 1) return TRUE; else return FALSE; } int IsEmpty(St.. 2020. 4. 21.
[아무문제] Pseudo-Palindrom checker 대칭되지 않는 문자들이 몇쌍이 있는지 출력하는 프로그램 Input: ABCDA Output: 2 Stack스택 사용 #include #include #include #define MAX_STACK10 #define TRUE1 #define FALSE0 typedef char Data; typedef struct { Data items[MAX_STACK]; int top; }Stack; void InitStack(Stack* pstack) { pstack->top = -1; } int IsFull(Stack* pstack) { if(pstack->top == MAX_STACK - 1) return TRUE; else return FALSE; } int IsEmpty(Stack* pstack) { if(ps.. 2020. 4. 21.
[시스템프로그램]02-1-2 정보의 표현과 활용(2) 이제부터 정수를 표현하는 방법들을 알아볼 차례다. 정수를 표현하는 방법은 네개정도 있다. - unsigned integers - signed-magnitude encoding - 1's complement encoding - 2's complement encoding 사질 처음 unsigned integers은 unsigned의 정수들 범위에서 표현을 하는 것이기에 특별한 것이 없지만 단순이 sign integer를 표현하는 방법은 세개나 있다. 이중에서 제일 많이 사용하는 방법은 바로 2's complement encoding이다. 그 이유는 차차 살펴보도록 하자. 처음 살펴볼 encoding은 unsigned integers이다. 사실 이 표현 방법은 그리 특별한것이 없다. 이진수로 표현된 데이터를 .. 2020. 4. 20.
[시스템프로그램]02-1-1 정보의 표현과 활용(1) 이번 장부터는 정보들이 어떻게 표현되고 어떻게 활용되는지 살펴볼 것이다. 이장에서 일단 code가 기계어로 어떻게 표현되는지 그리고 정수 data에 초점을 맞추고 사칙연상의 진행 과정 또한 살펴볼 예정이다. 처음으로 살펴볼 녀석은 Bit이다. 일단 Bit는 Binary Digit의 줄임말이다. Bit는 0과 1로 이루어져있고 비트 하나로는 0과1 두가지만 표현할 수 있겠지만 컴퓨터는 여러개의 비트를 사용하여 다양한 데이터 타입을 표현할 수 있다. 만약에 n 비트가 주어지면 총 2^n가지를 표현할 수 있다. 예를 들어서 2의 32승이면 대략 0 ~ 42억정도의 수가 표현 가능하다. 일반적으로 우리가 한 문자를 표현할때 8비트 다른 말로 1바이트로 표현하는데 그 이유는 2의 8승은 256개 문자를 표현 할 .. 2020. 4. 20.
야메 C언어 강좌: 3. 주석과 변수 우리가 굉장히 어려운 수학문제를 풀때 선생님께서 풀이를 가르켜주셨을 때는 이해하기 쉬웠지만 몇일이 흐르고 다시 그 풀이를 봤을 때 한번에 다시 이해하는 것은 굉장히 어렵습니다. 코드도 마찬가지입니다. 처음에 내가 썼던 코드들을 몇시간 몇일 뒤에 봤을 때에 한번에 이해하기에는 굉장히 어렵습니다. 그래서 여러분들이 수업때에 필기를 작성하는 것처럼 여러분의 코드 옆에 해당 코드에 대한 설명을 작성할 수 있습니다. 마치 밑코드 처럼 말이죠. #include//stdio.h라는 라이브러리 포함 int main(){ printf("Hello, World!"); //printf는 출력함수 return 0; //코드 종료 } 코드 오른쪽에 저번에 배웠던 내용들을 적어놨습니다. 이러한 설명들을 우린 주석이라고 부릅니다... 2020. 4. 19.
야메 C언어 강좌: 2. Hello, world의 정체 #include int main(){ printf("Hello, World!"); return 0; } 저번 강좌에서 보았던 우리의 첫 코드입니다. 다양한 이해가되지 않은 영어들이 있는데 그래도 그나마 익숙할 코드는 "Hello, World!"가 있겠죠. 네 바로 화면에 출력하게 되는 글씨들이 있습니다. 호기심이 있으신 분들은 아마 Hello, World! 대신에 다른 말들을 적어봤겠죠? 아주 좋은 자세입니다! 코딩의 실력을 늘리는데에 자기가 직접 실험을 해보는 것이 굉장히 효율적이라고 말해주고 싶군요. 그렇습니다. 괄호 안 ""안의 말들은 우리가 화면에 출력하고 싶은 문자열들을 적을 수 있습니다. 그럼 이 출력을 하게 해주는 명령어는 바로 printf라는 함수입니다. 우리는 앞으로 이 함수를 통해서 우.. 2020. 4. 19.
야메 C언어 강좌: 1. Hello, World!(dev c++설치하기) 많은 분들이 처음 컴퓨터언어에 관해서 공부를 시작할 때 기본적인 배경 지식이 필요한지에 많은 걱정을 합니다. 저도 처음엔 그런 고민을 하였고 전공수업때는 이때문에 조금 어렵다는 관념때문에 벅찬 느낌이 있었지만 지금와서 생각해보니 그런 걱정은 사실 필요없다고 생각합니다. 그래서!!! 여러분들이 이 강좌를 듣기 전에 필요한 것은 컴퓨터와 컴파일러입니다!!! 컴퓨터는 알겠는데 컴파일러라는 것에 낮설수도 있습니다. 컴파일러는 컴퓨터언어를 작성하는데 필요한 환경이라고 생각하면 되겠습니다. 마치 컴퓨터 언어의 작업장과도 같은 것이죠. 컴파일의 종류는 굉장히 많습니다. 흔히 마이크로소프트사에서 제공하는 Visual Studio가 있죠. 굉장히 다양한 기능이 있고 사용하는데에도 굉장히 편이합니다. 다만 저의 강좌 초반.. 2020. 4. 18.
야메 c언어 강좌: 0. 강좌를 앞서서... 이 강좌는 처음 c언어를 접하는 분들에게 추천드리고 굉장히 전문적인 부분까지는 얘기하지 않을 것을 강좌 시작전에 얘기 드리고 싶습니다. 강좌의 이름을 "야메강좌"라고 지은 이유도 너무 심도있는 부분까지는 얘기하고 싶지 않아서 이기 때문입니다. 사실 본 글쓴이가 그렇게 전문가가 아니어서 라는 이유도 포함되어있긴 하지만 ...ㅎ !!!그러나 각 강좌마다 단점이 있다면 장점도 있을 것이라고 생각합니다! 저의 강좌에선 간단한 개념소개와 간단한 예시로 그리고 저의 경험을 소개하고 어떻게하면 주어진 개념들을 이곳저곳에 활용하여 내가 상상한대로 코드를 짤수있도록 도와드리겠습니다!!! 여러분의 상상을 코드로 표현할수 있는 순간까지 저의 강좌를 봐주셨으면 좋겠습니다!!! 마지막으로 간단한 공부법만을 소개하고 이 글을 마.. 2020. 4. 18.
[백준] 2941번: 크로아티아 알파벳 문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= 예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다. 입력 첫째 줄에 최대 100글자의 단어가 주어진다. 알파벳 소문자와 '-', '='로만 이루어져 있다. 단어는 크로아티아 알파벳으로 이루어져 있.. 2020. 4. 17.