분류 전체보기 14

자료구조) 연결 리스트로 구현한 다항식 덧셈 프로그램

c언어로 작성되었습니다. 다항식 2개를 준비하여 다항식끼리 더한 결과 값을 다항식으로 출력합니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113..

자료구조 2020.06.02

C언어) 간단한 미로찾기 게임

- 아주 간단한 미로 찾기 게임이다. - 주인공(?)이 종점에 도착하면 프로그램은 종료한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 11..

Programming/C 2020.06.02

자료구조) 역순 연결 리스트(reverse linked list)

c언어로 작성된 코드입니다. 역순 연결 리스트(reverse linked list)는 단순 연결 리스트(singly linked list)를 거꾸로 역순으로 바꾼 연결 리스트이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ListNode *reverse(ListNode *head) { ListNode *p,*q,*r; p = head; q = NULL; while (p != NULL) { r = q; q = p; p = p->link; q->link = r; } return q; } Colored by Color Scripter cs 소스 코드를 여러번 봤지만 이해가 되지 않아 그림을 그려봤습니다. 1) 포인터 p,q,r 을 선언하고 while( p! = NULL) 이전..

자료구조 2020.06.01

알고리즘) 선택 정렬(Selection Sort) (2/2)

c언어로 작성된 코드입니다. - 문자열을 선택 정렬하는 코드를 작성해보았습니다. - 포인터 배열을 이용하여 각각의 문자열을 저장한 후 선택 정렬을 실시합니다. - strcmp() 함수 - 이중 포인터 - 포인터 배열 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 #include #include void swap(char **xp,char **yp); void printStringArray(char *arr[],int size); void selectionSort(char *arr[..

자료구조 2020.05.23

알고리즘) 선택 정렬(Selection Sort) (1/2)

c언어로 작성된 코드입니다. - 선택 정렬이란 단순한 정렬 시리즈 중 하나이다. - 가장 작은 숫자를 차례대로 탐색, 가장 왼쪽 자리부터 스왑(swap)한다. - 가장 작은 숫자를 선택하는 방식으로 정렬을 진행하여 선택 정렬이라 불린다. - outer 루프가 한번 돌 때마다 element 하나의 최종 위치가 확정 //영상을 보면 이해가 쉬울 것이다. https://www.youtube.com/watch?v=jtxwQ7ChiII Worst : O(n^2) Average : O(n^2) Best : O(n^2) 오름차순 기준으로 정렬한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35..

자료구조 2020.05.23

Java) 영어 단어 테스트 프로그램

영어단어를 테스트하는 프로그램이다. 1. 단어 삽입 2. 힌트 제공 1회 (해당 단어 스펠링 2개 공개) 3. 랜덤으로 테스트가 진행. 이미 테스트한 단어는 출력하지 않음. 4. 맞은 단어와 틀린 단어 개수 출력 //만약 힌트가 제공된 후 단어를 맞힌다면 맞은 단어에 포함 5. 주관식 1. 힌트를 제공하는 기능을 구현하는 것 => charAt(index)함수를 이용하여 string을 char type 배열로 만들어서 해결! 2. 이미 랜덤으로 테스트를 진행한 단어들을 제외하는 알고리즘을 구현하는 것 => boolean type배열을 선언하여 해결! 1. WordBookFucntion.java (interface) 1 2 3 4 5 6 7 8 9 10 package WordBook; public inter..

Programming/Java 2020.05.23

자료구조) Queue를 이용한 은행 시뮬레이션 프로그램

c언어로 작성된 코드입니다. Server가 한 개인 은행 시뮬레이션을 자료구조에서 배웠는데 만약 Sever가 두 개라면 어떻게 할까 고민해보다가 만들게 되었다. 한참을 고민하다가 결국 혼자 해냈다!! 짜릿 - 은행 시뮬레이션 프로그램이다. - 은행에서 업무를 보는 것처럼 랜덤으로 고객이 들어와 고객 업무처리 시간(랜덤)에 맞게 업무 처리하고 나간다. - 이를 60분까지 반복한다. Server를 두 개(a창구, b창구)로 만들어야 했는데 어떤 식으로 구성할지 한참을 고민하였다. - bool 자료형을 사용했다. 각 Sever마다 출입 여부를 임의로 정하여 업무 중에는 들어오지 못하게끔 코드를 짰다. - 만약 은행에 두 개의 창구가 있다면 어떤 식으로 서비스가 진행될까 생각해보고 A4용지에 글로 옮겨 구체적으..

자료구조 2020.05.04

C언어) 환율 계산기 프로그램(달러, 원)

환율을 입력해 달러를 원으로, 원을 달러로 계산해 출력해주는 프로그램이다. 3번째 자리마다 ','를 넣어서 결과 값을 보기 쉽게 출력해주는 기능을 넣었다. 1. 정수형 숫자를 문자열로 바꿀 때 2. 정수형 숫자를 거꾸로 출력할 때 3. ','를 출력해야 했을 때 구글링을 통해 다른 사람의 코드를 분석하며 공부해봤다. 스스로 창의적인 코드를 만들어 프로그램을 짜는 것은 쉬운 일이 아닌 것 같다.. 창의성은 여러 가지 지식이 뭉쳐서 시너지를 내는 것이기 때문에 나보다 실력이 좋은 분들의 코드를 분석하는 것도 좋은 방법이라고 생각했다. 그렇게 내 것이 쌓인다면 나도 언젠간 창의적인 코드를 짜서 효율적인 프로그램을 만들 수 있을 거라 믿는다. 하루하루 꾸준히 도전한다면 어느샌가 실력이 늘어있을 거다!! 1 2 ..

Programming/C 2020.05.02

디앱(DApp)이란?

Decentralized Application : 탈중앙화 어플리케이션, 분산 어플리케이션 블록체인 기술을 활용하여 중앙 서버 없이 네트워크상에 정보를 분산하여 저장 및 구동하는 앱 항목 디앱(DApp) 전통적인 앱 정보 저장 / 보안 분산된 개인 간 네트워크에 저장으로 해킹의 어려움 중앙화된 데이터베이스 저장 서버나 로컬 컴퓨터를 이용하므로 해킹의 위험성 높음 데이터 삭제 여부 데이터나 거래는 생성된 뒤 삭제가 불가능 데이터베이스에서 삭제 가능 정보 투명성 모두 공개되고 공공 거래 장부에 모두 기록 데이터베이스에 기록되어 접근 권한 필요 가동성 일부 블록이 다운되어도 다른 블록들이 동일한 정보를 보유하고 있기 때문에 영향을 받지 않음 앱을 동작시키는 서버나 컴퓨터가 다운되면 정지 사용자 비용 기능을 사..

C언어) 순환을 이용한 최댓값 구하기

순환(recursion)이란? 어떤 알고리즘이나 함수가 자기 자신을 호출하여 문제를 해결하는 프로그래밍 기법이다. 주의할 점 1. 반드시 순환 호출에는 순환 호출을 멈추는 문장이 포함되어야 한다. 2. 문제의 크기가 순환이 진행될수록 작아지는 것에 유의해야 한다. 문제를 풀면서 생각하지 못했던 점들 1.반환값이 꼭 max여야 한다는 생각에 다른 식으로 접근을 하지 못했다. ==> 1시간 정도 고민해봤지만 반복문으로 밖에 코드가 나오지 않아 구글링을 했다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include int findMax(int arr[],int n) { if (n == 0) return arr[0]; //배열의 index가 0일 때 a[0]반환 i..

Programming/C 2020.04.29