제리의 기록

[프로그래머스] 석유 시추(Java)

문제 풀이 프로그래머스 석유 시추 문제입니다. 문제 출처 (1) 문제 파악 이어져 있는 석유의 개수를 파악하고 열에 걸쳐있는 석유를 모두 더했을 때 최댓값을 구하는 문제입니다. (2) 문제 풀이 방법 생각하기 가장 먼저 이어져있는 석유 칸의 개수가 몇 개씩인지 파악해야 합니다. -> 그래프 탐색 이후 모든 열을 돌며 최대 석유의 값을 ...

다익스트라(Java)

다익스트라란? 다익스트라 알고리즘은 최단 거리를 구하는 알고리즘입니다. 조건 다익스트라 알고리즘을 사용하여 문제를 풀기 위해서는 조건이 있습니다. 음수 가중치가 없어야 한다. 음수 가중치가 있는 그래프에서 최단 거리를 구하기 위해서는 벨만-포드 알고리즘을 사용하면 됩니다. 다익스트라 알고리즘 방식 그렇다면 어떻게 그래프의 최단 거리를 구...

[백준] 20529번_가장 가까운 세 사람의 심리적 거리(Java)

문제 풀이 백준의 20529번 문제입니다. 문제 출처 (1) 문제 파악 (2) 문제 풀이 방법 생각하기 가장 먼저 떠오르는 방법은 완전 탐색입니다. 조합을 사용해서 3명씩 뽑은 후 심리적 거리를 계산하는 방법이죠! 그러나.. 거리를 계산하고자 하는 사람의 최대 인원 수는 10만명이기 때문에 시간 초과가 날 것이 분명합니다..! 그런데 잘 생...

[백준] 2630번_색종이 만들기(Java)

문제 풀이 백준의 2630번 문제입니다. 문제 출처 (1) 문제 파악 (2) 문제 풀이 방법 생각하기 이 문제는 분할 정복을 사용해서 풀 수 있습니다. (큰 문제가 작은 문제로 쪼개지기 때문에 가능합니다!) 특정 사각형 범위가 모두 같은 색상인지를 확인하고, 다른 색이 섞여있다면 절반 사이즈의 사각형 4곳을 동일한 방식으로 조사하면 되는 것이...

조합(Java)

조합 조합은 n개의 숫자 중에서 r개를 뽑아야 할 때 순서를 고려하지 않고 뽑는 것을 말합니다. 구현 방법 그렇다면 이 조합은 코드 상에서 어떻게 구현할 수 있을까요? 가장 중요한 포인트는 해당 인덱스의 숫자를 선택하냐, 안하냐의 두 가지가 경우가 존재한다는 것입니다! 백트래킹 백트래킹을 사용해서 조합을 구현할 때에는 start 변수를 사용합니다...

[백준] 9375번_패션왕 신해빈(Java)

문제 풀이 백준의 9375번 문제입니다. 문제 출처 (1) 문제 파악 (2) 문제 풀이 방법 생각하기 이 문제에서는 옷의 종류마다 몇 개의 옷이 있는지 확인하는 것이 중요합니다. 같은 이름을 가진 옷은 없다고 했으니 중복 관련 처리는 신경쓰지 않아도 되겠네요! 예제를 통해 이해를 해보자면.. 옷의 종류는 headgear, eyewear 두 ...