algorithm(98)
-
백준 연구소 코드 및 해설 (파이썬)
https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 최적의 벽 세우기를 알고리즘으로 생각하긴 너무 어려운 것 같아서.. 그냥 모든 combination으로 계산해보는 걸로 코드를 짜봤다. Python3으로는 시간초과고 PyPy3로는 통과라서 약간 찜찜하지만~ 그래도~~ 입력으로 주어진 연구소를 graph, 연구소에서 벽을 세울 수 있는 빈 곳의 좌표는 blank, 바이러스의 좌표는 virus에 저장했다. compute_safe 함수로는 입력으로 주어진 연구소 ..
2021.09.08 -
백준 연산자 끼워넣기 코드 및 해설 (파이썬)
https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 입력으로 주어진 수와 연산자를 저장합니다. 주어진 연산자 조건에 따라 가능한 모든 중복없는 배열을 permutated_operators에 저장하고, 각 배열마다 계산한 값을 vals에 저장합니다. 음수로 나누기를 할 땐 문제에서 주어진 조건에 맞게 변형 후 계산합니다. 이렇게 구한 값들중 최댓값과 최솟값을 차례로 프린트합니다. import s..
2021.09.08 -
백준 경쟁적 전염 코드 및 해설 (파이썬)
https://www.acmicpc.net/problem/18405 18405번: 경쟁적 전염 첫째 줄에 자연수 N, K가 공백을 기준으로 구분되어 주어진다. (1 ≤ N ≤ 200, 1 ≤ K ≤ 1,000) 둘째 줄부터 N개의 줄에 걸쳐서 시험관의 정보가 주어진다. 각 행은 N개의 원소로 구성되며, 해당 위치 www.acmicpc.net 시험관의 상태를 n초마다 업데이트하여 풀이했습니다. 각 바이러스의 위치는 딕셔너리로 저장했고, 딕셔너리의 value는 큐로 만들어 처리 완료된 경우 pop할 수 있도록 했습니다. contaminate 함수를 통해 매 초마다 시험관을 업데이트 합니다. 1~K번 바이러스까지 차례대로 딕셔너리에 해당 바이러스 번호가 key로 있으면 해당 key의 모든 value들(좌표들)..
2021.09.08 -
백준 특정 거리의 도시 찾기 코드 및 해설 (파이썬)
https://www.acmicpc.net/problem/18352 18352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개 www.acmicpc.net 큐를 이용한 BFS 코드를 활용해 풀이했습니다. 처음엔 X에서 각 도시까지의 거리를 충분히 큰 값 INF로 초기화합니다. 여기선 문제에서 주어진 K의 최댓값인 300000보다 1만큼 큰 값을 INF로 설정했습니다. 문제에서 X에서 X까지의 거리는 0이라고 했으므로 X번째 요소는 0으로 값을 변경합니다. 한 번 방문한 곳을 계..
2021.09.07 -
백준 치킨 배달 코드 및 해설 (파이썬)
https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 국어 능력이 중요한 거 같은 복잡한 문제!!!! 우선 입력으로 들어온 걸 잘 정리해서 저장해둔다 N은 도시 크기, M은 최종 선택할 치킨 가게 개수, houses엔 집이 있는 좌표를 튜플로, stores엔 치킨 가게가 있는 좌표를 튜플로 저장한다. 이때 좌표는 0이 아니라 1부터 시작한다고 했으므로 그냥 +1씩 해줬다. 이후 각 집마다 각 치킨 가게까지의 거리를 구했다. 이를..
2021.09.02 -
백준 뱀 코드 및 해설 (파이썬)
https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 문제 설명이 좀 불친절하지 않나?? 그렇지 않나??!?! 뱀이 너무 이상하게 움직여서 짜증나는 문제였다. 뱀이 자기자신의 몸과 부딪히는게 어떤 상황인건지 한참 고민했다. 다음 이동할 곳으로 (무리하게!) 먼저 머리 먼저 옮기는데 그 곳에 지 몸이 있으면 부딪히는 거구만 으이구 먼저 보드 크기, 사과 개수, 사과 위치, 방향 전환 시점 및 방향 등 필요한 정보를 모두 받아 변수에 저장한다. 보드는 0~ (..
2021.08.24