본문 바로가기

Algorithm475

[파이썬] 백준 2610 : 회의준비 (골드2) [파이썬] 백준 2610 : 회의준비 (골드2) https://www.acmicpc.net/problem/2610 풀이 방향성 생각 크게 두 가지 파트로 구성 유니온 파인드를 통해서 연결 요소 만들어주기 플로이드 와샬을 통해서 각 연결 요소에서 최대 거리가 가장 작은 노드 구하기 유니온 파인드, 플로이드 와샬이 아니더라도 기본적인 탐색만 쓰고도 풀 수 있다. 하지만 $N = 100$이므로 플로이드 와샬을 통해서 푸는 것이 정해라고 생각한다. 전체코드 from collections import defaultdict as dd import sys input = lambda : sys.stdin.readline().rstrip() def find(a): if parent[a] != a: parent[a] = .. 2024. 2. 28.
[파이썬] 프로그래머스 : 수레 움직이기 (레벨3) [파이썬] 프로그래머스 : 수레 움직이기 (레벨3) 코딩테스트 연습 - [PCCP 기출문제] 4번 / 수레 움직이기 | 프로그래머스 스쿨 (programmers.co.kr) 풀이 방향성 생각 맵 크기가 굉장히 작다. 완탐? 효율적으로 탐색하기 위해서 bitmask? 벽, 빈칸, 수레 3가지 종류가 존재해서 힘들어보임 최대 4x4 size에서 이전에 왔던 위치는 지나갈 수 없고, 벽이라는 제약 조건이 있어서 가지치기를 해주면 전체 케이스가 많지 않을 것이라고 판단. DFS로 수레를 이동시키며 경로를 저장한다. 목적지에 도달했을 경우 이동거리와 이동 경로를 저장한다. 빨간 수레의 경로와 파란 수레의 경로를 비교한다. 중간에 같은 좌표를 가지거나, 서로 부딪히며 이동하는 경우를 제외한 가장 짧은 탈출시간 리턴.. 2024. 2. 28.
[파이썬] 백준 14238 : 출근기록 (골드2) [파이썬] 백준 14238 : 출근기록 (골드2) https://www.acmicpc.net/problem/14238 문제 스타트링크에는 세명의 직원이 일을 하고 있다. 세 직원의 이름은 강호(A), 준규(B), 수빈(C) 이다. 이 회사의 직원은 특별한 룰을 가지고 있는데, 바로 하루에 한 명만 출근한다는 것이다. 3일간의 출근 기록이 "AAC"라는 것은 처음 이틀은 A가 출근했고, 셋째 날엔 C만 출근했다는 뜻이다. A는 매일 매일 출근할 수 있다. B는 출근한 다음날은 반드시 쉬어야 한다. C는 출근한 다음날과 다다음날을 반드시 쉬어야 한다. 따라서, 모든 출근 기록이 올바른 것은 아니다. 예를 들어, B는 출근한 다음날 쉬어야 하기 때문에, "BB"는 절대로 나올 수 없는 출근 기록이다. 출근 기.. 2024. 2. 25.
[파이썬] 코드트리 싸움땅 (골드2) [파이썬] 코드트리 싸움땅 (골드2) https://www.codetree.ai/training-field/frequent-problems/problems/battle-ground/description?page=1&pageSize=20 풀이 0. 방향성 생각 플레이어 : 위치 / 능력치 / 방향 특정 좌표로 이동한 경우, 어떤 플레이어가 있는지 바로 확인해야한다. 플레이어가 많지 않아서 딕셔너리를 안써도 상관 없지만, 딕셔너리가 편해서 딕셔너리 사용 총 : 위치 / 공격력 같은 좌표에 여려 개의 총이 들어간다는 내용이 포함돼있다. 어떤 값을 넣고, 최대값을 뽑아야 하므로 최대힙을 사용한다. 마찬가지로 플레이어가 많지 않아서 딕셔너리를 안쓰고 정렬 후 맨 뒤에서 꺼내도 크게 상관 없을 듯 하다. 플레이어 .. 2024. 2. 25.