[순환]백준9095: 1,2,3 더하기 Baekjoon: 9095문제 바로가기 경우의 수를 먼저 구했다. 3일 경우 4일 경우 코드 #include int cnt = 0; int plus(int n, int g); int main() { int Case = 0; scanf(" %d", &Case); for (int i = 0; i g) { return 0; } else if (n == g) { cnt++; return 0; } else { for (int i = 1; i < 4; i++) { plus(n .. 알고리즘/문제풀이 2년 전
스택 스택은 후입선출(LIFO)으로 창고에 쌓여있는 상자를 생각하면 이해가 쉽다. 만약 상자를 바닥에 A, B, C, D순으로 쌓았다면 하나를 꺼내려면 맨 위에 있는 D 상자를 꺼내야 한다. 스택에서 입출력은 맨 위에서만 일어나고 스택의 중간에서는 데이터를 삭제할 수 없다. 스택에서 입출력이 이루어지는 부분을 스택 상단(stack top)이라고 하고 반대쪽인 바닥부분을 스택 하단(stack bottom)이라고 한다. 스택에 저장되는 것을 요소(element)라 부른다. 스택에 요소가 하나도 없는 스택을 공백 스택(empty stack)이라고 한다. 스택 ADT 객체: 0개 이상의 원소를 가지는 유한 선형 리스트 연산: create(size) ::= 최대 크기가 size인 공백 스택을 생성한다. is_full(.. 알고리즘/개념 2년 전
순환 어떤 알고리즘이나 함수가 자기 자신을 호출하여 문제를 해결하는 프로그래밍 기법이다. 팩토리얼 문제를 풀며 순환에 대해 알아본다. 팩토리얼 n!을 다음과 같이 정의하는데 다시 (n-1)!이 사용된다. 이러한 정의를 순환적이라고 한다. 위의 정의에 따라 n!을 구하는 함수인 factorial(n)을 만든다. int factorial(int n) { if (n 알고리즘/개념 2년 전
알고리즘과 자료구조 자료구조 프로그램에서 자료들을 정리하여 보관하는 여러 가지 구조를 자료구조라고 한다. 알고리즘 주어진 문제를 처리하는 단계적인 절차를 알고리즘이라고 한다. 추상 자료형(ADT) 자료들과 그 자료들에 대한 연산들을 명시한 것이다. 자료 구조는 다음과 같은 ADT 형태로 구현하면 된다. 사용자가 ADT가 제공하는 연산만을 사용할 수 있다. 사용자는 ADT가 제공하는 연산들을 사용하는 방법을 알아야 한다. 사용자는 ADT 내부의 데이터를 접근, 수정할 수 없다. 사용자는 ADT가 어떻게 구현되는지 모르더라도 ADT를 사용할 수 있다. 다른 사람이 ADT의 구현을 변경하여도 인터페이스가 변경되지 않으면 사용자는 같은 방식으로 ADT를 사용할 수 있다. 객체지향언어는 클래스 개념을 사용하여 ADT가 구현된다. 알.. 알고리즘/개념 2년 전