백준

Algorithm/백준

백준 1074번 : Z(Java)

https://www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net [풀이] - 재귀 유형의 문제입니다. - 다음 칸을 방문하는 규칙은 일정하게 z 모양을 유지합니다. - 또한 배열의 크기는 2의 배수로 일정합니다. - 그러므로 재귀적으로 문제를 해결해야 합니다. - 재귀적으로 문제를 해결하기 위해 전체 배열을 1,2,3,4 이렇게 사분면을 나누어 생각해야 합니다.(실제 수학의 사분면과는 다른 개념입니다. z모양에 따른 사분면입니다.) - 1사분면일 경우..

Algorithm/백준

백준 1920번 : 수 찾기(Java)

https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net [풀이] 이분탐색 유형의 문제로 기본 개념을 익히기 좋은 문제라고 생각한다. 파이썬으로도 풀어보고, 자바로 두번째로 풀어보는데 다시 한번 개념을 익힐 수 있었다. A 배열을 입력받은 후, 이분탐색을 하기 이전에 정렬을 하는 것이 첫번째, 이분 탐색 메소드를 정의하는 것이 두번째 단계였다. [코드] import java.io.BufferedReader..

Algorithm/백준

백준 14719번 : 빗물(Java)

https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net [풀이] 처음에는, 오른쪽으로 인덱스를 진행하면서 현재 값보다 높은 곳의 인덱스를 구해 넓이로 계산하려했다. 하지만, 이렇게 하니, 코드가 복잡해지고 인덱스 계산하는 것이 어려워졌다. 결국 다른 분들의 코드를 참조했고 좌우 기둥의 가장 높은 인덱스를 계산하는 것에 대해 알게 되었다. 좌우 가장 높은 기둥의 인덱스를 각각 구한 후, 더 낮은 곳의 높이에서 현재 인덱스의 기둥을 뺀 ..

Algorithm/백준

백준 10816번 : 숫자 카드 2(Java)

https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net [풀이] 이분 탐색 유형의 문제인데 이번에는 HashMap 자료구조를 이용해서 풀었다. HashMap의 getOrDefault() 메소드를 이용해서 값이 있을 경우 값의 +1을, 없을 경우 0을 반환하는 식으로 진행했다. [코드] import java.io.BufferedReader; import java.io.IOException; import java.io.I..

Algorithm/백준

백준 2776번(Java) : 암기왕

https://www.acmicpc.net/problem/2776 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며, www.acmicpc.net [풀이] N과 M은 100만개까지 입력이 가능하므로 '수첩1'을 정렬하여 이분탐색으로 '수첩2'에 해당하는 값을 찾았다. 찾은 값은 StringBuffer에 담았으며 이를 \n을 추가해서 답을 얻었다. 마지막에 \n이 있으면 틀렸다고 나와서 어쩔수 없이 if 조건문에 마지막의 경우 \n을 추가하지 않도록 했다. [코드] import java.io.BufferedReader; import java.io...

Algorithm/백준

백준 11650번 : 좌표 정렬하기(Java)

https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net [풀이] 정렬의 기준을 정할 수 있는지, 없는지에 대한 공부를 할 수 있는 문제였다. Comparator 인터페이스를 통해 정렬의 기준을 문제에서 주어진 조건에 맞춰서 정렬하였다. (Comparator 인터페이스를 사용하는 법을 익히기 위한 연습문제로 좋은 것 같다!) [코드] import java.util.Arrays; import java...

skyey94
'백준' 태그의 글 목록