본문 바로가기

PS17

[BOJ 18405] 경쟁적 전염 문제 개요문제: https://www.acmicpc.net/problem/18405 연구소에서 바이러스가 퍼지고 있습니다. 바이러스는 번호가 작을수록 우선적으로 전파되며, 매초 상하좌우 인접한 칸으로 퍼집니다.연구소는 N x N 크기의 격자이며, 한 칸에 하나의 바이러스만 존재할 수 있습니다. 특정 초가 지난 후, (X, Y) 위치에 존재하는 바이러스의 종류를 출력하세요. (없으면 0 출력) 예제3 31 0 20 0 03 0 02 3 2N = 3, K = 3 (바이러스 종류는 1~3)S = 2초 후, X = 3, Y = 2 (즉, map[2][1]에 어떤 바이러스가 있는지)2초가 지난 후 배열은 다음과 같습니다.112132332 접근 방식1. 각 바이러스의 위치를 Map> 자료구조에 저장하여 바이러스 번.. 2025. 5. 29.
[LeetCode 3355] Zero Array Transformation I 문제개요문제: https://leetcode.com/problems/zero-array-transformation-i 정수 배열 nums와 2차원 배열 queries가 주어집니다. 각 쿼리 queries[i] = [li, ri]는 해당 구간의 모든 인덱스 값을 1씩 감소시키는 작업입니다. 모든 쿼리를 순서대로 처리한 후, 배열의 모든 값이 0이 되는지를 판별하는 문제입니다. 예시Input: nums = [1, 0, 1], queries = [[0, 2]]Output: true[0, 2] 구간에서 인덱스 0과 2를 선택하여 각각 1씩 감소시키면, [1, 0, 1] → [0, 0, 0]이 되므로 Zero Array가 됩니다.접근 방법이 문제는 누적합(Prefix Sum) 기법을 활용하여 효율적으로 해결할 수.. 2025. 5. 20.
[BOJ 14567] 선수과목 (Prerequisite) 문제 개요문제: https://www.acmicpc.net/problem/14567 N개의 과목과 M개의 선수 관계가 주어졌을 때, 각 과목을 수강하기 위해 필요한 최소 학기 수를 구하는 문제입니다.예를 들어, 총 4개의 과목이 있고 아래와 같은 선수 조건이 주어진다면,1 → 2 1 → 3 3 → 4 이 경우,1번 과목은 선수 조건이 없으므로 1학기에 수강 가능2번과 3번 과목은 1번을 먼저 들어야 하므로 2학기부터 가능4번 과목은 3번 과목 이후 들을 수 있으므로 3학기에 수강 가능각 과목을 수강하기 위한 최소 학기 수는 다음과 같이 됩니다.[1번: 1학기, 2번: 2학기, 3번: 2학기, 4번: 3학기] 접근 방법 이 문제는 위상 정렬과 DP를 활용해 해결할 수 있습니다.각 과목의 최소 수강 학기.. 2025. 5. 15.
[LeetCode 2094] Finding 3-Digit Even Numbers 문제개요문제: https://leetcode.com/problems/finding-3-digit-even-numbers 정수 배열 digits가 주어졌을 때, 이 배열 내의 세 자릿수를 임의의 순서로 이어 붙여 만들 수 있는 중복 없는 짝수 세 자릿수를 모두 구해야 합니다. 조건은 다음과 같습니다.각 숫자는 digits 배열에서 서로 다른 인덱스에서 선택된 세 개의 요소로 구성됩니다.생성된 정수는 세 자리 수여야 하며, 0으로 시작해서는 안 됩니다.마지막 자릿수는 짝수여야 하므로 2, 4, 6, 8, 0 중 하나여야 합니다.결과는 정렬된 상태로 반환해야 합니다. 예시:입력: [1, 2, 3]출력: [132, 312] (예: 132는 1, 3, 2를 조합한 것이며, 짝수이고 0으로 시작하지 않음) 접근방.. 2025. 5. 12.