전체 글
BOJ - 우수 마을 1949번 (JAVA, Python)
❓ 문제 - 백준 우수 마을 1949번 - JAVA, Python 풀이법 출처 (https://www.acmicpc.net/problem/1949) 1949번: 우수 마을 N개의 마을로 이루어진 나라가 있다. 편의상 마을에는 1부터 N까지 번호가 붙어 있다고 하자. 이 나라는 트리(Tree) 구조로 이루어져 있다. 즉 마을과 마을 사이를 직접 잇는 N-1개의 길이 있으며, www.acmicpc.net 📝 문제해결법 1. 이 문제는 DFS + DP, Tree DP로 해결했다. [문제의 조건] 1. '우수 마을'로 선정된 마을 주민 수의 총 합을 최대로 해야 한다. 2. 마을 사이의 충돌을 방지하기 위해서, 만일 두 마을이 인접해 있으면 두 마을 모두 '우수 마을'로 선정할 수 없다. 즉 '우수 마을' 끼리..
2021 KAKAO BLIND RECRUITMENT - 카드 짝 맞추기(JAVA)
❓ 문제 - 2021 KAKAO BLIND RECRUITMENT 카드 짝 맞추기 - JAVA 풀이법 출처 (https://programmers.co.kr/learn/courses/30/lessons/72415?language=java) 📝 문제해결법 1. DFS로 순열로 카드 번호 뽑는 순서를 정한 후 BFS로 이 순서에 맞춰 최단 거리로 이동 처리하면서 이동 거리의 최솟값을 갱신한다. 2. DFS로 순열 구하기 nodes라는 Node의 2차원 배열로 각 인덱스는 카드의 숫자이고 nodes[i][0], nodes[i][1] 은 i번째 숫자의 Node를 나타내며 Node를 통해 카드의 위치 x, y를 구할 수 있다. permu라는 Node 배열로 각 카드의 번호를 뽑는 순서에 맞게 노드의 위치들을 정한다...
BOJ - 온풍기 안녕! 23289번 (JAVA)
❓ 문제 - 백준 온풍기 안녕! 23289번 - JAVA 풀이법 출처 (https://www.acmicpc.net/problem/23289) 23289번: 온풍기 안녕! 유난히 추운 날씨가 예상되는 이번 겨울을 대비하기 위해 구사과는 온풍기를 설치하려고 한다. 온풍기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기 www.acmicpc.net 📝 문제해결법 1. 이 문제는 구현으로 풀었다. 벽에 대한 정보를 ArryList 2차원 배열인 map_wall로 관리하였다. 만약 i, j행에 0이라는 숫자가 있으면 (i, j)위치의 윗부분에 벽이 있다는 것이고, 1이라는 숫자가 존재하면 (i, j)위치에 오른쪽부분에 벽이 있다는 의미이다. 온풍기에서 나오는 바람은 각 방..
BOJ - 마법사 상어와 블리자드 21611번 (JAVA)
❓ 문제 - 백준 마법사 상어와 블리자드 21611번 - JAVA 풀이법 출처 (https://www.acmicpc.net/problem/21611) 21611번: 마법사 상어와 블리자드 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그, 비바라기 마법을 할 수 있다. 오늘 새로 배운 마법은 블리자드이고, 크기가 N×N인 격자에서 연습하려고 한다. N은 항상 홀수이고, ( www.acmicpc.net 📝 문제해결법 1. 이 문제는 구현으로 풀었다. 각 1, 2, 3, .... N*N-1번의 위치 정보를 Node객체의 배열에다가 저장하여 접근 처리한다. 1번 부터 n*n-1까지의 위치 정보를 구하면 상어가 있는 위치 (n/2, n/2)부터 좌->하->우->상을 반복하면서 토네이도 형태로 되어 있다..