https://www.acmicpc.net/problem/13335코드const fs = require("fs");const filePath = process.platform === "linux" ? "dev/stdin" : "./input.txt";const [n, w, l, ...arr] = fs .readFileSync(filePath) .toString() .trim() .split(/\s/) .filter((item) => item != "") .map((item) => +item);class TruckNode { constructor(weight) { this.next = null; this.weight = weight; this.dist = 0; }}class ..
문제풀이
https://www.acmicpc.net/problem/1700코드n, k = map(int, input().split())orders = list(map(int, input().split()))answer = 0multitap = set()for i in range(k): # 이미 꽂혀있는지 확인 if orders[i] in multitap: continue # 빈 칸이 있는지 확인 if len(multitap) max_latest_use: change_plug = plug max_latest_use = latest_use multitap.remove(change_plug) multitap.add(orders[i])..
https://www.acmicpc.net/problem/1374코드from heapq import heappop, heappushimport sysinput = sys.stdin.readlinen = int(input())lectures = []for _ in range(n): _, start, end = map(int, input().split()) lectures.append((start, end))lectures.sort()needs = []for i in range(n): start, end = lectures[i] if needs and needs[0] 이 문제는 heap 자료구조를 잘 알고 사용하는 것이 중요한 문제였다.1. 강의 정보 정렬 1-1. 각 강의의 시작 ..

https://www.acmicpc.net/problem/14925 풀이점화식: `dp[i][j] = min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1]) + 1`dp[i][j]는 현재 위치(빨간색).왼쪽(노란색), 위쪽(파란색), 대각선 왼쪽 위(검은색) 방향의 dp 값들을 확인한다.이 세 값 중 최솟값에 1을 더한다.그림에서 'a'로 표시된 부분들은 기존에 만들어진 정사각형의 변을 나타내고, '1'로 표시된 부분은 새로 추가되는 1칸을 의미한다.이렇게 세 방향의 최솟값을 사용하는 이유는 정사각형이 되려면 세 방향 모두가 정사각형의 일부가 되어야 하기 때문이다. 만약 세 방향 중 하나라도 작은 값이 있다면, 그 방향으로는 더 큰 정사각형을 만들 수 없다. 따라서 가능한 최대 정사각..
https://www.acmicpc.net/problem/1759 이 문제는 백트래킹과 조합 두 가지 방법으로 풀 수 있다.코드(백트래킹)l, c = map(int, input().split())alphabets = sorted(list(input().split()))def check_validation(str): vowels = {"a", "e", "i", "o", "u"} vowel_cnt = 0 for i in range(len(str)): if str[i] in vowels: vowel_cnt += 1 if vowel_cnt >= 1 and len(str)-vowel_cnt >= 2: return True else: ..