본문 바로가기

전체 글

(64)
백준 수 정렬하기 2(2751) 이번에는 정렬 문제를 풀어보려고 문제 하나를 찾았다. https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬..
백준 숫자 카드(10815) 백준에서 보이는 이분 탐색 문제 하나를 선택했다. https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 문제 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 가지고 있는지 아닌지를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘..
이진 탐색 이진 탐색이란? 이진 탐색 (Binary search) 이진 탐색은 정렬 된 데이터 배열에 특정 값을 찾아내는 알고리즘이다. 중간에 있는 임의의 값을 선택하여 찾고자 하는 값 X와 비교 후 X가 중간값보다 작으면 중간값 기준 좌측, X가 중간값 기준으로 크면 배열의 우측을 대상으로 다시 탐색한다. 동일한 방법으로 다시 중간의 값을 임의로 선택하여 비교한다. 해당 값을 찾을때까지 이 과정을 반복한다. 위 그림을 보면 오름차순으로 정렬된 배열에서 Target(22)를 찾는 이진 탐색을 시작한다. 탐색을 반복적으로 수행하여 마지막 22 타겟을 찾는다. 시간복잡도 : O(logN) 해당 알고리즘은 반복문과 재귀 두가지 방법으로 구현이 가능하다.