문제 풀이 66

[백준] 11650 (좌표 정렬하기)

#1 알고리즘 힙 정렬 (Heap Sort)#1 알고리즘 힙(heap)이라는 영어 단어의 사전적 의미는 쌓아 놓은 무더기다. 그리고 이 단어는 프로그래밍에서도 사용된다. 첫째로 메모리 영역에서, 둘째로 자료구조에서다. 이 둘은 서로 다른kenel.tistory.com정렬 알고리즘은 여러 가지가 있다. 상황에 맞추어 가장 적절한 알고리즘을 골라야 하지만, 나는 알고리즘을 공부 중이므로 사용해 보지 않은 정렬 알고리즘 중에 아무거나 골라서 사용한다. 이 문제에 사용할 알고리즘은 힙 정렬(Heap Sort)이다. 해당 정렬을 11650번 문제 풀이를 위해 약간 변형해, 주어진 x값이 같으면, y값을 비교해서 대소를 구분한다. #2 코드#2-1 자바import java.io.BufferedReader;impor..

[백준] 2751 (수 정렬하기 2)

#1 알고리즘 병합 정렬 (Merge Sort)#1 알고리즘 병합 정렬의 총 비교 횟수는, 최악의 경우 nlog2n이다 #2 코드 (자바) public static void mergeSort(int[] array, int startIndex, int endIndex) { // (startIndex kenel.tistory.com정렬 알고리즘은 여러 가지가 있다. 상황에 맞추어 가장 적절한 알고리즘을 골라야 하지만, 나는 알고리즘을 공부 중이므로 사용해 보지 않은 정렬 알고리즘 중에 아무거나 골라서 사용한다. 이 문제에 사용할 알고리즘은 병합 정렬(Merge Sort)이다. #2 코드#2-1 자바import java.io.BufferedReader;import java.io.BufferedWriter;im..

[백준] 2750 (수 정렬하기)

#1 알고리즘 버블 정렬 (Bubble Sort)#1 알고리즘 정렬 방식이 마치 거품이 수중에 있다가 수면 위로 뽀글뽀글 올라가는 모습과 비슷해서 버블 정렬이라고 이름 붙여졌다. 기본적인 버블 정렬은, 정렬 작업을 시작할 때 중간에 배열kenel.tistory.com정렬 알고리즘은 여러 가지가 있다. 상황에 맞추어 가장 적절한 알고리즘을 골라야 하지만, 나는 알고리즘을 공부 중이므로 사용해 보지 않은 정렬 알고리즘 중에 아무거나 골라서 사용한다. 이 문제에 사용할 알고리즘은 버블 정렬(Bubble Sort)이다.  #2 코드#2-1 자바import java.util.Scanner;public class Main { public static void main(String[] args) { ..

[백준] 1654 (랜선 자르기)

#1 알고리즘#1-1 #1-2 중복된 원소 값이 있는 경우의 이진 탐색 (Binary Search)#1 알고리즘 이진 탐색 (Binary search) #1 알고리즘 이렇게 해서 x의 인덱스 i를 찾으면 좋겠지만, 이 x가 배열 values 어디에도 존재하지 않는 경우도 있을 것이다. 이 경우엔 어떻게 처리해야 할까? 업kenel.tistory.com해당 글을 읽어야 이 다음 부분을 이해할 수 있다 #1-3 #1-4여기에서 정리했던 binarySearchLastIndex()와 다른 부분을 강조 표시했다.
min과 max을 각각 2로 나눈 뒤 더하는 이유는 int형의 오버플로우 방지를 위해서다. 또, values는 내림차순이기 때문에, Up 및 Down을 판단하는 코드에서의 부등호를 반대 방향으로 돌렸다...