no image
[알고리즘 일기] 7. 이진 탐색 구현 알고리즘
​ 이진 탐색 구현 알고리즘 이진 탐색 알고리즘은 선형 탐색 알고리즘과 달리, 정렬된 리스트를 전제로 합니다. 정렬된 리스트가 아니면 이 알고리즘은 적용이 불가능합니다. ​ ​ 주의사항 * 1회 비교를 거칠 때마다 탐색 범위가 (대략) 절반으로 줄어듭니다. ​ ​ ❧ 테스트 셋 def binary_search(element, some_list): # 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, 5, 7, 11])) print(binary_search(11, [2, ..
2021.05.07
no image
[알고리즘 일기] 6. 선형 탐색 구현 알고리즘
​ ​ 선형 탐색 구현 알고리즘 선형 탐색이란, 리스트의 처음부터 끝까지 순서대로 하나씩 탐색을 진행하는 알고리즘입니다. ​ ​ 주의사항 * element in some_list와 같이 in 키워드를 사용하는 건 안 됩니다. ​ ​ ❧ 테스트 셋 def linear_search(element, some_list): # Code #Test print(linear_search(2, [2, 3, 5, 7, 11])) print(linear_search(0, [2, 3, 5, 7, 11])) print(linear_search(5, [2, 3, 5, 7, 11])) print(linear_search(3, [2, 3, 5, 7, 11])) print(linear_search(11, [2, 3, 5, 7, 11]..
2021.05.06
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