본문 바로가기

분류 전체보기145

[사이트추천] 코딩 실력향상을 위한 코딩 및 알고리즘 연습 사이트 추천 안녕하세요 여러분 오늘은 여러분들에게 코딩 연습을 할 수 있는 몇가지 사이트를 추천드리자 해당 글을 쓰게 되었습니다. 사실 제 강의에서도 그렇고 내가 작성하고 싶어하는 코드를 만드는 것만으론 코딩 실력을 향상시키는데에는 어느정도 한계가 있다고 생각합니다. 그리고 다양한 알고리즘을 배우는데에 이만큼 좋은 사이트들은 없다고 생각합니다. 그래서 제가 몇가지 추천할 만한 사이트들을 가지고 와 보았습니다. 1. 백준 온라인저지(Baekjoon Online Judge) 백준 온라인 저지는 많은 입문자들에게도 잘 알려져있는 사이트라고 생각합니다. 저도 막 C언어에 입문했을 때 많은 교수님들과 친구들이 이 사이트에서 연습하는 것을 추천했습니다. 다른 사이트에 비해 굉장히 깔끔하게 문제들이 정리가 되어있고 문제양도 상당.. 2020. 4. 23.
야메 C언어 강좌: 4-2. 계산을 해보자(2) 자 여러분께서 저번 강좌를 보고 이것저것을 따라해보셨다면 많은 곤란함을 아마 직면했을 거라고 생각합니다. 그럼 그 란함들을 해결하기 위해서 추가적인 강의를 진행해보도록 하겠습니다. 처음으로 살펴볼것은 자동 형변환이라는 것입니다. 전 강좌에서 다양한 예시 코드들을 써놓았는데 호기심이 많은 사람들이라면 정수형과 실수형을 동시에 사용해 보았을 겁니다. 한번 살펴보죠. #include int main(){ int a = 10; float b = 3.0; printf("a / b = %f\n",a/b); return 0; } 결과는 3.333333으로 실수 값이 출력되었습니다. 정수(int)와 실수(float)가 계산을 했는데 실수값이 나왔네요. 이러한 규칙을 자동 형변환이라고 합니다. 두개의 다른 종류의 변수가.. 2020. 4. 23.
[백준] 2562번: 최댓값 문제 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다. 입력 첫 째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다. 출력 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다. #include int main() { int arr[9], big = 0, index; for (int i = 0; i big) { bi.. 2020. 4. 22.
[아무문제] Removing duplicated nodes 스택을 사용하여 주어진 숫자들중 중복된 숫자를 삭제하는 프로그램입니다. 아주 간단한 코드죠 Input: 10 5 3 1 1 8 3 1 5 2 9 Output: 5->3->1->1->8->3->1->5->2->9->NULL 5->3->1->8->2->9->NULL #include #include typedef struct _Node{ int data; struct _Node* next; }Node; void printList(Node* head){ Node* ptr = head; while(ptr){ printf("%d",ptr->data); printf("->"); ptr = ptr->next; } printf("NULL"); printf("\n"); } void push(Node** head, int .. 2020. 4. 22.
야메 C언어 강좌: 4-1. 계산을 해보자(1) 사실 컴퓨터가 처음 개발되었을 때, 우리가 익히 알고 있는 처음으로 개발된 '애니악'이란 컴퓨터는 전쟁통에 미사일의 조준점을 계산하기 위해 개발이 되었습니다. 즉 애초에 컴퓨터는 계산기의 기능으로 만들어 다는 것이죠. 그럼 우리도 한번 여러가지 계산을 통해 우리의 C언어 능력을 향상시켜 봅시다. 일단은 기본적인 수식으론 우리가 흔히 알고 있는 더하기, 빼기, 곱하기, 나누기가 있죠. 이런 수식들은 산술 연산식이라고 부릅니다. 그럼 컴퓨터에서 이를 어떻게 표시할까요? 밑의 코드에서 살펴보도록 하겠습니다. #include int main(){ int a = 10; int b = 2; printf("a + b = %d\n",a+b); printf("a - b = %d\n",a-b); printf("a * b .. 2020. 4. 22.
[아무문제] 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.