이진 탐색 (Binary Search)
이진 탐색 : 데이터가 정렬되어 있는 배열에서 특정한 값을 찾아내는 알고리즘이다. 반으로 쪼개가면서 탐색을 하는데 내부의 데이터가 반드시 정렬되어있어야 함. 배열의 중간에 있는 임의의 값을 선택하여 찾고자 하는 값 x와 비교한다. x가 중간 값보다 작으면 중간 값을 기준으로 좌측의 데이터들을 대상으로 비교하고, 크다면 배열의 우측을 대상으로 다시 탐색한다. -> 해당 값을 찾을 때까지 중간 값을 임의로 선택하고 비교하는 과정을 반복함. 예시) my_list = [1, 9, 3, 5, 7, 13, 11, 17, 15] 라는 배열이 있음. 반드시 정렬 과정이 필요! 1 3 5 7 9 11 13 15 17 중에서 5를 찾고자 한다면 1 3 5 7 9 11 13 15 17 처음값 1, 끝값 17 일때, 중간값은..
[백준] 2+1 세일 : 11508번 - Python
https://www.acmicpc.net/problem/11508 11508번: 2+1 세일 KSG 편의점에서는 과일우유, 드링킹요구르트 등의 유제품을 '2+1 세일'하는 행사를 하고 있습니다. KSG 편의점에서 유제품 3개를 한 번에 산다면 그중에서 가장 싼 것은 무료로 지불하고 나머지 두 www.acmicpc.net 문제를 풀면서 몰랐던 개념 (1) 일정 부분 합 구하기 -> sum 메소드와 슬라이싱 사용!!! arr = [10, 20, 30, 40, 50] a = sum(arr[:2]) b = sum(arr[:3]) print(a) print(b) >> 30 >> 60 * sum 메소드는 합을 구해준다 (2) 리스트를 특정 크기의 리스트로 분할하기 arr = [1, 2, 3, 4, 5, 6, 7,..