BOJ(26)
-
[백준 JAVA] 4196 : 도미노
[백준 4196] 도미노 : https://www.acmicpc.net/problem/4196문제 조건 도미노가 한쪽 방향으로만 넘어지기에 단방향 간선으로 표현되지만, 실제로는 우리가 원하는 방향(왼쪽 또는 오른쪽)으로 도미노를 밀어 넘어뜨릴 수 있다. 즉, 한 도미노가 넘어진 방향에 따라 연쇄 반응을 일으키는 관계가 결정되는데, 이때 도미노를 그래프로 나타내면 간선이 기본적으로 한 방향(진출 간선)만 표시된다. 하지만 만약 어떤 도미노가 한쪽 방향에서는 연쇄 반응을 일으키지 못한다면, 그 도미노의 반대쪽(진입 간선) 방향으로도 연쇄 반응을 고려할 수 있어야 한다. 그래서 DFS를 진행할 때, 상황에 따라 진출 간선과 진입 간선을 서로 뒤바꿔서 탐색할 수 있다는 뜻이다. 이는 단순히 양방향 그래프가 되는..
2025.02.08 -
[백준 JAVA] 31932 : 나는 북극곰입니다
[백준 31932] 나는 북극곰입니다 : https://www.acmicpc.net/problem/31932문제 조건 정리 N개의 빙하(정점)와 M개의 얼음 다리(간선)로 이뤄진 북극(그래프)이 있다.간선은 양방향(무향)이다.간선은 시간에 따라 녹아서 무너진다.북극곰은 1번 빙하에서만 사냥할 수 있다. 최대한 오래 머물고 싶다.북극곰은 N번 빙하로 도착해야만 한다. 사냥을 최대한 오래하되 N번 빙하로 도착은 해야 한다.북극곰은 1초마다 움직이거나, 사냥할 수 있다. 둘 중 하나만 할 수 있다.북극곰은 무너진 다리와 건너는 와중에 무너질 다리를 건널 수 없다.다리를 건너는 것을 완료하는 시점과 다리가 무너지는 시점이 동일하다면 건널 수 있는 것으로 간주한다.즉, k초가 지났고, 얼음 다리 길이가 d, 얼음..
2024.08.26 -
[백준 JAVA] 1135 : 뉴스 전하기
[백준 1135] 뉴스 전하기 : https://www.acmicpc.net/problem/1135문제 조건 정리 민식이는 회사의 매니저이다. 그리고, 민식이는 회사의 중요한 뉴스를 모든 직원에게 빠르게 전달하려고 한다. 민식이의 회사는 트리 구조이다. 모든 직원은 정확하게 한 명의 직속 상사가 있다. 자기자신은 그들 자기 자신의 직접 또는 간접 상사가 아니고, 모든 직원은 민식이의 직접 또는 간접적인 부하이다. -> 민식은 루트민식이는 일단 자기 자신의 직속 부하에게 한 번에 한 사람씩 전화를 한다. -> 한 번에 한 사람씩! 순서가 중요함!뉴스를 들은 후에, 각 부하는 그의 직속 부하에게 한 번에 한 사람씩 전화를 한다. 이 것은 모든 직원이 뉴스를 들을 때 까지 계속된다.모든 사람은 자신의 직속 부..
2024.08.01 -
[백준 JAVA] 14466 : 소가 길을 건너간 이유 6
[백준 14466] 소가 길을 건너간 이유 6 : https://www.acmicpc.net/problem/14466문제 조건 정리 정사각형 목초지가 N×N (2 ≤ N ≤ 100) 격자로 이루어져 있다.인접한 목초지 사이는 일반적으로 자유롭게 건너갈 수 있지만, 그 중 일부는 길을 건너야 한다. -> 사실상 (길 == 벽)농장의 바깥에는 높은 울타리가 있어서 소가 농장 밖으로 나갈 일은 없다. -> 테두리 검사해야함K마리의 (1 ≤ K ≤ 100,K ≤ N2) 소가 존의 농장에 있고, 각 소는 서로 다른 목초지에 있다.어떤 두 소는 길을 건너지 않으면 만나지 못 할 수 있다. 이런 소가 몇 쌍인지 세어보자. -> 쌍 공식 -> K*(K-1)/2입력 첫 줄에 N, K, R이 주어진다.다음 R줄에는 한 줄..
2024.07.28 -
[백준 JAVA] 8980 : 택배
[백준 8980] 택배 : https://www.acmicpc.net/problem/8980문제 조건 정리 트럭은 본부에서 출발하여 1번 마을부터 마지막 마을까지 오른쪽으로 가면서 마을에 있는 물건을 배송한다.각 마을은 배송할 물건들을 박스에 넣어 보내며, 본부에서는 박스를 보내는 마을번호, 박스를 받는 마을번호와 보낼 박스의 개수를 알고 있다. 박스들은 모두 크기가 같다. 트럭에 최대로 실을 수 있는 박스의 개수, 즉 트럭의 용량이 있다. 이 트럭 한 대를 이용하여 다음의 조건을 모두 만족하면서 최대한 많은 박스들을 배송하려고 한다.조건 1: 박스를 트럭에 실으면, 이 박스는 받는 마을에서만 내린다.조건 2: 트럭은 지나온 마을로 되돌아가지 않는다.조건 3: 박스들 중 일부만 배송할 수도 있다.입력 박..
2024.07.20 -
[백준 JAVA] 15989 : 1, 2, 3 더하기 4
[백준 15989] 1, 2, 3 더하기 4 : https://www.acmicpc.net/problem/15989문제 조건 정리 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 4가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 합을 이루고 있는 수의 순서만 다른 것은 같은 것으로 친다. -> 오름차순으로 나타낸다고 가정1+1+1+12+1+1 (1+1+2, 1+2+1)2+21+3 (3+1)정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오.입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 10,000보다 작거나 같다. 문제를 풀기 전 합을 이루는 수..
2024.07.16