[백준] 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)이기때문..
[백준] 1149번 - RGB거리 java
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/1149 난이도 : S1Tag : DP풀이 일자 : 2025-03-09문제 탐색하기N: RGB거리에 존재하는 모든 집의 개수 (2 N개의 줄: N번째 집을 빨강, 초록, 파랑으로 칠하는 비용 (1  조건1번 집의 색은 2번 집의 색과 같지 않아야 한다.N번 집의 색은 N-1번 집의 색과 같지 않아야 한다.i(2 ≤ i ≤ N-1) 번 집의 색은 i-1번, i+1번 집의 색과 같지 않아야 한다.조건을 정리하면 모든 집의 색은 인접한 집과 색깔이 달라야 합니다.이 조건을 만족하면서 모든 집을 칠하는 비용의 최솟값을 구하면 됩니다.가능한 시간복잡도0.5초이므로 시간 복잡도가 5000만 이하여야 합니다.브루트포스(완전탐색)로 풀 경우 O(3^n)이 걸리고..
[백준] 14430번 - 자원 캐기 java
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/14430 난이도 : S2Tag : DP풀이 일자 : 2025-03-08문제 탐색하기N: 탐사할 영역의 세로길이 (1 M: 탐사할 영역의 가로길이 (1 1: 자원0: 빈 땅 로봇은 왼쪽 위(1, 1)부터 오른쪽 아래(N, M)까지 자원을 채집이동 가능 방향: 오른쪽 또는 아래쪽즉, N*M의 땅에서 로봇이 이동하며 모을 수 있는 자원의 최대 개수를 구하면 됩니다.가능한 시간복잡도완전탐색:각 위치에서 왼쪽 또는 오른쪽으로 이동 가능하므로 대략 O(2^(N*M))입니다. 최대 시간복잡도를 생각하면 O(2^(300*300))이므로 탐색 불가능합니다. DP:각 위치에 왔을 때 최선의 값을 유지하며 이동시 시간복잡도가 O(N*M)입니다.N*M ≤ 90,000..
[백준] 9095번 - 1, 2, 3 더하기 java
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/9095 난이도 : S3Tag : DP풀이 일자 : 2025-03-07문제 탐색하기T : 테스트 케이스 수n : 1,2,3의 합으로 나타낼 수 (1  이 문제는 정수 n을 1, 2, 3의 합으로 나타내는 모든 경우의 수를 구하는 문제입니다. 즉, 주어진 숫자 n을 만들 수 있는 서로 다른 합의 방법을 찾는 것이 핵심입니다. 예를 들어, n = 4일 때 가능한 조합은 다음과 같습니다.1+1+1+11+1+21+2+12+1+12+21+33+1가능한 시간복잡도이 문제는 n 이를 일반화하여 n이 커질 때의 시간복잡도를 고려하면 완전 탐색O(3^n)은 비효율적입니다.예를 들어, n=20이면 경우의 수가 121415개이고,  O(3^20) ≈ 35억 번의 연산..