본문 바로가기

알고리즘11

c언어 풍차(바람개비) 만들기 c언어를 배울 때 처음 나온 과제가 풍차(바람개비)만들기 였던 것 같다. 그런데 나는 한 1분도 안되서 풀었던 기억이 있다. 이쪽에 재능이 있나보다. 뭐 어찌됐든 풍차(바람개비)를 만들어보자 c언어는 절차지향 언어이기 때문에 콘솔에 풍차(별)를 찍을 때 위에서부터 찍어야한다.그리고 풍차의 날개가 4개니까 위에 2개, 아래에 2개를 배치한다고 하면 위에 2개부터 찍고 내려와서 아래 2개를 마저 찍어야한다.즉 콘솔창에서 풍차(바람개비) 날개를 왼쪽부터 2개 그린 후에 오른쪽에 2개를 그리는 행위는 불가능하다. 다음은 c언어로 구현한 풍차이다. 풍차 날개의 원하는 값을 한번 입력해보자. #include void make_star(int n); int main(void){ int n;printf("길이를 입력하.. 2018. 4. 26.
C언어 스택(STACK) 예제 스택(STACK) - 자료구조 스택(stack)은 모든 원소들의 삽입(insert)과 삭제(delete)가 리스트의 한쪽 끝에서만 수행되는 제한 조건을 가지는 선형 자료 구조(linear data structure)로서, 삽입과 삭제가 일어나는 리스트의 끝을 top이라 하고, 다른 한쪽 끝을 bottom이라 한다. 스택은 종종 pushdown stack이라고도 하는데, 스택의 top에 새로운 원소를 삽입하는 것을 push라 하고, 가장 최근에 삽입된 원소를 의미하는 스택의 top으로부터 한 원소를 제거하는 것을 pop이라 한다. 이와 같은 스택 연상은 항상 스택의 top에서 발생하므로 top 포인터의 값을 1씩 증가 또는 감소시킴으로써 수행된다. 큐가 FIFO(first int first out)이고 스.. 2018. 4. 25.
C언어 큐(QUEUE) 예제 큐(QUEUE) - 자료구조 리스트의 한쪽 끝에서만 삽입과 삭제가 일어나는 스택과는 달리 리스트의 한쪽 끝에서는 원소들이 삭제되고 반대쪽 끝에서는 원소들의 삽입만 가능하게 만든 순서화된 리스트. 가장 먼저 리스트에 삽입된 원소가 가장 먼저 삭제되므로 선입 선출인 FIFO(first in first out) 리스트라고 한다. 다음은 C언어로 크기가 5인 큐를 구현한 코드이다.대충 설명을 하면 크기가 5인 큐를 만들고 (메모리 할당을 하고) 초기화를 하고 데이터를 삽입(PUSH)하고 데이터를 추출(POP)하는 것이다.삽입 순서가 1 -> 2 -> 3 -> 4 -> 5 인 경우 출력 순서는 1 -> 2 -> 3 -> 4 -> 5 이다. 큐의 사용처는 가장 쉽게 볼 수 있는 곳이 프린트이다. 프린터가 출력하는 .. 2018. 4. 25.
c언어로 짠 어떤 숫자가 들어오든 1의 자리는 버리고 10의 자리는 올리기 이런 식의 문제는 코딩 대회나 취업 등에서 손코딩 문제 등으로 나올 수 있다. 문제) 어떤 숫자가 들어오든지 1의 자리는 버리고, 10의 자리는 올려서 변환된 숫자를 리턴해라. 예를들어 0부터 9까지는 0이다.10부터 109까지는 100을 출력하는 코드이다.110부터 209까지는 200을 출력한다. 이런식으로 1의 자리는 버리고 10의 자리는 올려주면된다. c언어로 구현하면 다음과 같다. #include int main(void){ int n; int k; scanf("%d",&n); n=n/10; k=n%10; if(k>0){ n=n/10; n++; n=n*100; }else n*=10; printf("%d\n",n); } 2018. 4. 20.