[백준] 17266번 - 나무 자르기 java
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/2805 난이도 :  S2Tag : Binary Search풀이 일자 : 2025-03-17문제 탐색하기N: 나무의 수 (1 M: 상근이가 집으로 가져가려고 하는 나무의 길이 (1 나무 높이: (0 나무의 높이는 항상 M보다 크거나 같다.절단기에 설정할 높이 H 를 찾아야 합니다.나무 N개를 절단기에 넣고, 높이가 H보다 큰 나무는 잘리고, 작은 나무는 그대로 남습니다.잘린 나무의 총 길이가 최소한 M 이상이 되도록 해야 하며. 가능한 절단기의 높이 중 최댓값을 구하는 문제 입니다.   가능한 시간복잡도 나무 개수 N이 최대 1,000,000개이므로,모든 높이에 대해 직접 탐색하면 O(NH) 으로 불가능합니다. 그러므로 이분 탐색을 활용하면 O(l..
[백준] 17266번 - 선분 위의 점 java
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/11663 난이도 :  S3Tag : Binary Search풀이 일자 : 2025-03-16문제 탐색하기N: 점의 개수 (1 M: 선분의 개수 (1 M개의 시작점과 끝점 (1 점의 좌표는 중복되지 않음. N개의 점과 M개의 선분이 주어졌을 때 각 선분의 시작점과 끝점이 주어지면 해당 선분위에 존재하는 점의 개수를 출력하면 됩니다.가능한 시간복잡도먼저 최대 N개의 점이 주어지므로 O(N)이후 M개의 선분이 주어지므로 O(M)각 선분의 길이는 최소 1부터  10억까지 이므로 각 선분의 점의 주어졌을때 매번 몇개의 점이 있는지 순서대로 탐색을 하는건 불가능합니다. 이때는 이분탐색을 사용 가능합니다.이분탐색은 정렬이 되어야만 사용 가능하며 이분탐색의 시..
[백준] 17266번 - 어두운 굴다리 java
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/17266 난이도 :  S3Tag : Binary Search풀이 일자 : 2025-03-15문제 탐색하기N: 굴다리의 길이 (1 M: 가로등의 개수 (1 x: M개의 설치를 할 수 있는 가로등의 위치 (0 주어진 조건가로등의 높이의 두배만큼 주위를 비춘다.모든 가로등의 높이는 같다.설치할 가로등의 개수(M)과 설치할 위치(x)는 이미 정해졌다.가로등의 위치(x)는 오름차순으로 입력받으며, 중복되지 않고 정수이다.즉, 이 문제의 핵심은 최소한의 비용을 사용해 가로등이 굴다리를 전부 비출 수 있는 높이를 찾으면 됩니다.가능한 시간복잡도여기서는 완전탐색과 이분탐색을 둘 다 진행해 볼 수 있습니다.완전탐색의 경우완전탐색을 사용하면, 모든 가로등 간의 간..
[백준] 13335번 - 트럭 java
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/13335 난이도 :  S1Tag : Simulation풀이 일자 : 2025-03-14문제 탐색하기n : 다리를 건너는 트럭의 수 (1 w : 다리의 길이 (1 L : 다리의 최대 하중 (10 a(i) : i번째 트럭의 무게주어진 조건트럭의 순서는 바꿀 수 없음다리 위에는 최대 w대의 트럭만 동시에 올라갈 수 있음트럭들은 매초마다 1만큼 이동하며, 다리 길이를 지나야 완전히 건넘다리 위 트럭들의 무게 합이 L을 초과할 수 없음완전히 올라가지 못한 트럭의 무게는 다리의 하중에 포함되지 않음모든 트럭이 다리를 건너는 최단 시간을 구하는 프로그램을 작성해야 합니다.가능한 시간복잡도이 문제는 완전탐색을 이용한 시뮬레이션 문제로 해결할 수 있습니다.최대 ..
[백준] 2615번 - 오목 java
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/2615 난이도 : S1Tag : Simulation풀이 일자 : 2025-03-13문제 탐색하기이기는 경우: 같은 색의 바둑알이 정확히 5개 연속으로 놓인 경우 (가로, 세로, 대각선)6개 이상 연속될 경우 승리로 인정되지 않음바둑알 정보검은 바둑알: 1흰 바둑알: 2빈자리: 0출력 조건검은색이 이긴 경우 1 출력흰색이 이긴 경우 2 출력승부가 결정되지 않은 경우 0 출력이겼을 경우 → 연속된 다섯 개의 바둑알 중 가장 왼쪽에 위치한 바둑알의 좌표 출력세로로 배치된 경우 → 가장 위쪽의 바둑알 좌표 출력입력값19×19 크기의 바둑판 상태즉 이 문제는 바둑판을 탐색하며 오목(정확히 5개 연속)을 찾고, 가장 왼쪽 또는 위쪽에 있는 바둑알의 위치를 ..
[백준] 2503번 - 숫자 야구 java
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/2503 난이도 : S3Tag : Simulation풀이 일자 : 2025-03-12문제 탐색하기영수가 생각한 수: 111 ~ 999 (0 제외, 중복 숫자 없음)민혁이가 질문한 수: 111 ~ 999 (0 제외, 중복 숫자 없음)N: 질문의 수 (1 스트라이크 (Strike): 같은 숫자가 같은 위치에 존재할 경우볼 (Ball): 같은 숫자가 존재하지만, 위치가 다를 경우민혁이가 질문을 하고 영수가 대답한 정보를 파악해서 답이 될 수 있는 숫자의 개수를 출력해야 합니다.이때, 각 숫자는 서로 달라야 합니다.가능한 시간복잡도문제에 요구하는대로 구현하는 시뮬레이션 문제입니다.먼저 숫자는 1부터 9까지로 이루어진 서로다른 3자리의 수 입니다.그럼 모든..
[백준] 13567번 - 로봇 java
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/13567 난이도 : S4Tag : Simulation풀이 일자 : 2025-03-11문제 탐색하기초기 조건처음 로봇위치 : (0, 0)동쪽 방향을 보고 있음M : 정사각형 S의 한 변의 길이 (1 n : 로봇이 수행할 명령어 수 (1 동작TURN 0 : 현재 위치에서 왼쪽으로 90도 회전TURN 1 : 현재 위치에서 오른쪽으로 90도 회전MOVE d : 현재 방향으로 d만큼 움직임 (1 모든 명령 수행 후 로봇이 S의 경계를 포함한 안에 있으면 좌표 출력경계를 벗어났다면  -1 출력 즉 (0,0) 동쪽 방향부터 시작하여 로봇이 명령어 수만큼 움직였을 때 경계를 포함한 내부에 로봇이 있다면 로봇의 좌표를범위를 벗어낫다면 -1을 출력하면 됩니다.가능..
[백준] 2096번 - 내려가기 java
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/2096 난이도 : G5Tag : DP풀이 일자 : 2025-03-10문제 탐색하기N: 줄 개수 (1 각 줄마다 3의 숫자(01번 줄에서 N번줄까지 이동하며 점수가 누적이동 규칙:현재 위치에서 아래 인접한 칸으로만 이동 가능즉, (i, 0) → (i+1, 0 or 1), (i, 1) → (i+1, 0 or 1 or 2), (i, 2) → (i+1, 1 or 2) 위 규칙을 만족하면서 N 번 줄까지 내려올 때의 최대 점수와 최소 점수를 구하는 게 핵심가능한 시간복잡도브루트포스(완전탐색)으로 풀 경우 O(3^n)이 걸립니다.이때 최대 N이 100,000이므로 절대 불가능합니다. 17만 되어도 1억이 넘어버리기 때문이죠. DP로 풀 경우 O(N)이기때문..