no image
[C 이론] 8. 함수
함수(function) : 하나의 특별한 작업을 수행하기 위해 독립적으로 작성한 프로그램 프로그램을 구성하는 기본적인 구성요소 함수의 특징 함수는 서로 구별되는 이름을 가지고 있다. 함수는 특정한 작업을 수행한다. 함수는 입력을 받을 수 있고 수행 결과를 반환할 수 있다. 함수의 장점 함수를 사용하면 코드가 중복되는 것을 막을 수 있다. 한번 작성된 함수는 여러 번 재사용할 수 있다. 체계적으로 모듈화가 가능하며 유지보수가 용이하다. 라이브러리 함수 표준 함수 라이브러리 함수는 미리 정의가 된 함수이다. 함수가 정의되어 있는 파일들을 코드 시작전에 미리 포함시켜주어야한다. 보통 #include 를 이용해 헤더파일을 포함하는 형식으로 사용한다. 사용자 정의 함수 returnType functionName ..
2021.05.06
no image
[알고리즘 일기] 5. 하노이의 탑
하노이의 탑 이 게임의 목표는 왼쪽 기둥에 있는 원판들을 모두 오른쪽 기둥으로 옮기는 것입니다. 탐색을 재귀로 구현해보세요. 주의사항 * 한 번에 하나의 원판만 옮길 수 있습니다. * 큰 원판이 작은 원판 위에 있어서는 안 됩니다. ❧ 테스트 셋 def move_disk(disk_num, start_peg, end_peg): print("%d번 원판을 %d번 기둥에서 %d번 기둥으로 이동" % (disk_num, start_peg, end_peg)) def hanoi(num_disks, start_peg, end_peg): # Code # Test hanoi(3, 1, 3) - num_disks : 원판 수 - start_peg : 게임을 시작하는 기둥 번호 - end_peg : 목표로 하는 기둥 번호 ..
2021.05.05
no image
[알고리즘 일기] 4. 이진 탐색 구현 알고리즘(재귀)
이진 탐색 구현 알고리즘(재귀) 이진 탐색을 재귀로 구현해보세요. 주의사항 * 반드시 재귀(recursion)의 개념을 사용해야 합니다. ❧ 테스트 셋 def binary_search(element, some_list, start_index=0, end_index=None): # end_index's default value if end_index == None: end_index = len(some_list) - 1 # Code print(binary_search(2, [2, 3, 5, 7, 11])) print(binary_search(0, [2, 3, 5, 7, 11])) print(binary_search(5, [2, 3, 5, 7, 11])) print(binary_search(3, [2, 3,..
2021.05.04
no image
[알고리즘 일기] 3. 숫자 합, 자릿수 합
숫자 합 n번째 삼각수(triangle number)는 자연수 1부터 n까지의 합입니다. 파라미터로 정수값 n을 받고 n번째 삼각수를 리턴해주는 재귀 함수 triangle_number를 쓰세요. n은 1 이상의 자연수라고 가정합니다. 주의사항 * 함수 안에 반복문은 쓰면 안됩니다. ❧ 테스트 셋 # Return sum 1 to n def triangle_number(n): # Code # Test for i in range(1, 11): print(triangle_number(i)) ❧ 출력 예시 1 3 6 10 15 21 28 36 45 55 ❧ 정답 # Return sum 1 to n def triangle_number(n): if (n == 1): return 1 else: return n + tr..
2021.05.03
no image
[C 이론] 7. 반복문
반복 : 같은 처리 과정을 여러 번 되풀이하는 것 while 문 : 주어진 조건이 만족되는 동안 문장들을 반복 실행 while (조건식) { 문장; // 조건식이 참이면 문장 반복 실행 ... } 📢 while 문 사용 시 종료조건이 명확히 있어야 한다. (안그러면 무한 루프 돌게 됨) #include int main(void) { int i = 0; while (i < 5) { printf("Hello world! \n"); i++; } return 0; } if 문과 while 문의 차이 if 문 : 조건이 만족되면 한번만 실행 while 문 : 조건이 만족 되는 동안 여러번 반복 실행 while 문에서 주의사항 변수의 증감 int x = 1; while (x < 10) { printf("while ..
2021.05.03
no image
[C 이론] 6. 조건문
제어문 조건문 : 주어진 조건에 따라 어떤 일을 할 것인지 결정 반복문 : 주어진 조건에 따라 몇 번 할 것인지 결정 조건문 : 주어진 조건에 따라 특별한 작업 수행 3가지 제어구조 [순차구조, 선택구조, 반복구조] if 문 if(조건식) { 실행문 // 조건식이 참인 경우 실행 } if(number > 0) printf("양수입니다.\n"); if-else 문 if(조건식) { 실행문1 // 조건식이 참인 경우 실행 } else { 실행문2 // 조건식이 거짓인 경우 실행 } if(조건식1) { 실행문1 // 조건식1이 참인 경우 실행 } else if(조건식2) { 실행문2 // 조건식2가 참인 경우 실행 } ... else { 실행문n // 앞의 모든 조건이 거짓인 경우 실행 } 💡 if-else ..
2021.05.03
no image
[C 이론] 5. 수식과 연산자
수식(expression) : 수학 표기와 수학 기호를 사용하여 수학적 관계를 나타내는 것 숫자, 상수, 변수, 연산자의 조합 연산자와 피연산자로 나뉜다. 피연산자 수에 따른 연산자 분류 단항 연산자 : 피연산자의 수가 1개 : ++x; y—; 이항 연산자 : 피연산자의 수가 2개 : x + y; x - y; 삼항 연산자 : 연산자의 수가 3개 : x > y ? x : y; 산술 연산자 : 덧셈, 뺄셈, 곱셈, 나눗셈 등 사칙 연산을 수행 컴퓨터의 가장 기본적인 연산 💡 나눗셈 연산자 정수형끼리의 나눗셈에서는 결과가 정수형으로 생성하고 소수점 이하는 버려진다. 💡 나머지 연산자 - 첫 번째 피연산자를 두 번째 피연산자로 나누었을 경우의 나머지를 계산 - 나머지 연산자를 이용한 짝수와 홀수 구분 EX) x..
2021.05.03
no image
[C 이론] 4. 변수와 자료형
변수(variable) : 프로그램 실행 중 값을 저장하는 메모리 공간, 실행 중 변경 가능 숫자 변수 문자 변수 상수(constant) : 프로그램 실행 중 이용되는 값, 실행 중 변경 불가 숫자 상수 (정수, 실수) 문자 상수_print_문에서 문자열 형태로 "Hello World!" 라고 기입하는 것 조차도 상수이다. 논리 상수 자료형(data type) : 데이터의 타입(종류) 메모리의 값을 얼마나 할당해야하는지 알기위해 사용한다. ㄴ 메모리의 효율적 사용을 위해 보통 임베디드 시스템에서 쓰인다. 💡 sizeof() 자료형의 크기를 확인할 때 사용하는 함수로 헤더파일내에 내장되어 있다. 💡 signed, unsigned signed : 부호있는 값 ( 흔히 생략 ) unsigned : 부호없는 값..
2021.05.03
no image
[C 이론] 3. C프로그램 구성요소
전처리기 프로그램 컴파일 직전에 실행되는 별도의 프로그램 외부 파일을 포함시키라는 의미인 전처리기 기호 #으로 시작해서 개행으로 종료 컴파일러와 함께 제공되는 헤더 파일을 include 할 때 사용 디버깅에 도움을 주며 헤더 파일의 중복 포함 방지 함수 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 프로그램 코드의 집합 함수는 프로그램을 구성하는 기본적인 단위 C프로그램은 이런 함수들로 구성되며, 포함된 함수들을 사용하여 프로그램의 목적을 달성하게 된다. C언어에서 함수는 크게 표준 함수와 사용자 정의 함수로 구분할 수 있다. 함수를 사용하는 이유? 반복적인 프로그래밍 방지 프로그램을 여러 함수로 작성하면 모듈화로 인한 가독성 향상 프로그램 수정 시, 유지 보수 용이 ..
2021.05.03