본문 바로가기
    <

Algorithm/Baekjoon12

[백준] 14502번 연구소 (Java) / 조합, bfs 📍 문제 링크 https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 📍 문제 접근 1. 3개의 벽을 세우는 데 벽을 세우는 순서는 중요하지 않다. => 조합 2. 바이러스의 확산(=> bfs) 후 안전 영역의 크기를 출력 따라서 입력을 받은 후 1. 벽을 세울 좌표 조합 2. 배열 복사 및 벽세우기 3. 바이러스 확산 의 단계로 문제를 풀었다. 📍 코드 보기 import java.io.BufferedReader; import java.io.IOException;.. 2022. 4. 14.
[백준] 12865번: 평범한 배낭 (Java) 📍 문제 링크 https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 📍 문제 접근 dp 문제에서 중요한 점은 dp 배열에 어떤 값을 넣을지를 잘 기억하여 적당한 자료구조를 선택해야 한다. 이 문제에서 2차원의 dp배열을 선언하여 행에는 물건을 열에는 무게를 넣는다. 예제 입력 1은 다음과 같다. (물건의 개수: 4, 최대 무게: 7) 4 7 6 13 4 8 3 6 5 12 물건∖무게 .. 2022. 4. 1.
[백준] 1600번 말이 되고픈 원숭이 (Java) 📍 문제 링크 https://www.acmicpc.net/problem/1600 1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net 📍 문제 접근 1. 원숭이가 도착지점까지 이동하는 최소 횟수를 구해야 한다. => bfs 탐색을 이용하자. 2. 말방식의 이동경로와 원숭이방식의 이동경로를 구분해야 한다. => 따라서 visited 배열을 3차원 배열로 만들어서 말방식 이동의 횟수에 따라 방문처리를 구분해준다. 📍 코드 보기 (👇🏻) 더보기 import java.io.BufferedReader; im.. 2022. 3. 30.
[백준] 1417번: 국회의원 선거 (Java) / 우선순위 큐 📍 문제 링크 https://www.acmicpc.net/problem/1417 1417번: 국회의원 선거 첫째 줄에 후보의 수 N이 주어진다. 둘째 줄부터 차례대로 기호 1번을 찍으려고 하는 사람의 수, 기호 2번을 찍으려고 하는 수, 이렇게 총 N개의 줄에 걸쳐 입력이 들어온다. N은 50보다 작거나 같 www.acmicpc.net 📍 문제 보기 (더보기 👇🏻) 더보기 📍 문제 접근 국회의원 당선 조건이 다솜이를 제외한 모든 후보자들의 득표수 보다 많아야 한다. 우선순위 큐를 만들어서 다솜이를 제외한 후보자들의 득표 수를 넣었다. 다솜이의 투표수가 가장 높을 때 까지 아래의 과정을 반복하면 된다. 1. 큐의 가장 우선순위 값(고 득표자)과 다솜이 표 비교 2. 고득표자 -1 👉🏻 다솜이 표, 매수 횟.. 2022. 2. 2.