문제 풀이/기타 40

[백준] 28417 (스케이트보드)

#1 알고리즘 퀵 정렬 (Quick Sort)#1 알고리즘 어떤 원소를 기준으로 잡을 것이냐는 아무래도 상관없다. 여기에서는 각 배열의 맨 끝 원소를 기준으로 잡기로 한다. 혹시라도 기준을 대략적으로라도 원소들의 평균값에 가깝게 잡kenel.tistory.com정렬 알고리즘은 여러 가지가 있다. 상황에 맞추어 가장 적절한 알고리즘을 골라야 하지만, 나는 알고리즘을 공부 중이므로 사용해 보지 않은 정렬 알고리즘 중에 아무거나 골라서 사용한다. 이 문제에 사용할 알고리즘은 퀵 정렬(Quick Sort)이다. #2 코드#2-1 자바import java.util.Scanner;public class Main { public static void main(String[] args) { Scann..

[백준] 27522 (카트라이더: 드리프트)

#1 알고리즘 삽입 정렬 (Insertion Sort)#1 알고리즘 #2 코드 (자바) public static void insertionSort(int[] array, int startIndex, int endIndex) { for(int maxIndex = (startIndex + 1); maxIndexkenel.tistory.com정렬 알고리즘은 여러 가지가 있다. 상황에 맞추어 가장 적절한 알고리즘을 골라야 하지만, 나는 알고리즘을 공부 중이므로 사용해 보지 않은 정렬 알고리즘 중에 아무거나 골라서 사용한다. 이 문제에 사용할 알고리즘은 삽입 정렬(Insert Sort)이다. 문제에 조건에 맞춰 삽입 정렬 알고리즘을 약간 수정했다. 삽입 정렬의 핵심 원리는 그대로지만, 시간 저장용 배열 그리고 팀..

[백준] 2839 (설탕 배달)

#1 알고리즘0 ~ (N / 3)을 순회한다는 점에서 a는 음수일 수 없다. 하지만, b는 명시적으로 순회하는 게 아니라, a의 범위를 순회할 때 간접적으로 도출된다. 이 때, b가 혹여나 음수 값으로 계산되지 않을까 하는 우려가 있을 수 있다. 우려를 해소해보자면, a의 최댓값은 N / 3이다. 따라서 항상 (N - 3 * a) / 5 >= 0 이 성립한다. b = (N - 3 * a) / 5 이므로, b값은 음수일 수 없다. #2 코드#2-1 자바import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        int ..

[백준] 9076 (점수 집계)

#1 알고리즘 선택 정렬 (Selection Sort)#1 알고리즘 #2 요약 (자바) public static void selectionSort(int[] array, int startIndex, int endIndex) { for(int maxIndex = endIndex; startIndex kenel.tistory.com선택 정렬은 알고리즘이 매우 간단하기 때문에, 가벼운 정렬 문제에 사용하기에 안성맞춤이다. #2 코드#2-1 자바import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int..

[백준] 4153 (직각삼각형)

#1 알고리즘 선택 정렬 (Selection Sort)#1 알고리즘 #2 요약 (자바) public static void selectionSort(int[] array, int startIndex, int endIndex) { for(int maxIndex = endIndex; startIndex kenel.tistory.com코드 중에 선택 정렬의 원리를 살짝 응용한 부분이 있다. 선택 정렬은 알고리즘이 매우 간단하기 때문에, 가벼운 정렬 문제에 사용하기에 안성맞춤이다. #2 코드#2-1 자바import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanne..

[백준] 8958 (OX퀴즈)

#1 알고리즘O 또는 X 어느 쪽에서든 점수 갱신을 한다고 생각한다. 점수 갱신 전에, O는 더할 점수를 1만큼 증가시키고, X는 더할 점수를 0으로 만든다. #2 코드#2-1 자바import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int testCaseCount = Integer.parseInt(sc.nextLine().trim()); String submit = ""; for(int i = 0; i  #2-2 코틀린fun main() { val t..

[백준] 10250 (ACM 호텔)

#1 알고리즘#1-1호텔에 몇 번째 손님이 어느 층 어느 방에 입실하는지의 규칙을 살펴본다. #1-2규칙을 공식으로 표현하면, 손님이 H의 배수인 경우와 아닌 경우로 나누어진다. 이 알고리즘을 그대로 코드로 만들어도 이 문제를 풀수 있다. #1-3이와같이 if문을 없애 코드의 길이를 줄이는 방법도 있다. 바로, 1-based indexing으로 순서가 기술되어 있는 손님을 0-based indexing으로 생각하는 것이다. #2 코드#2-1 자바import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); ..