[BOJ] 16235. 나무 재테크
문제 나무 재테크 (https://www.acmicpc.net/problem/16235) 풀이 1. 초기 접근 문제조건 해석 역시 삼성 문제는 뭔가 글이 많다. 세세하게 잘 읽어야한다. 두번 세번 읽어줘야 한다. 문제를 잘 읽고 코딩하자. 삼성 문제의 대표적인 시뮬레이션 문제다. 문제에서 주어진 대로 그냥 짜기만 하면 된다. 핵심은, 과연 올바른 자료구조로 잘 구현할 수 있는가? 다. 알고리즘 정말 문제에 나온대로 하나씩 코딩하면 된다. 핵심은, 나이가 어린 나무들부터 양분을 섭취해야하는데, 이를 위해 deque 를 썼다. 자세한 건 코드 주석 참조. 코드 from collections import deque dxs = [-1, -1, 0, 1, 1, 1, 0, -1] dys = [0, 1, 1, 1, ..
[BOJ] 13460. 구슬 탈출 2
문제 구슬 탈출 2 (https://www.acmicpc.net/problem/13460) 풀이 1. 초기 접근 문제조건 해석 판이 주어지고, 스텝에 따라 판 위에 구슬의 위치가 규칙적으로 달라진다. 목표하는 위치에 도달하기 위한 "최소" 스텝을 구해야 한다. BFS 문제다. 알고리즘 이번 문제는 조금 까다로웠는데, step by step 으로 하나씩 코드화 해보자. 1) 먼저 기본적인 입력과 BFS 들을 만든다. 메인 코드는 아래와 같다. from collections import deque dxs = [-1, 0, 1, 0] dys = [0, 1, 0, -1] # n, m을 입력받고, board에 판을 저장한다. n, m = list(map(int, input().split())) board = [l..
[BOJ] 13913. 숨바꼭질 4
문제 숨바꼭질 4 (https://www.acmicpc.net/problem/13913) 풀이 1. 초기 접근 문제조건 해석 움직임, 경로에 대한 문제고, 간선의 길이가 1로 정해져있다. BFS 문제다. 알고리즘 이전 12851. 숨바꼭질 3 문제에서 방법에 약간 변형을 준 것이다. 이제는 경로를 출력해야하는데, DFS야 쉽게 탐색 경로를 출력할 수 있다지만, BFS 에서는 어떻게 해야할까? 현재 위치 cur 에 오기 직전 위치를 담는 리스트(path_list)를 만들자. 예를 들어, 현재 위치가 3이고, 다음으로 이동할 위치가 2, 4, 6이면, path_list[2], path_list[4], path_list[6] = 3 이 된다. 물론 여기에도, 최소 시간으로 왔는지 체크해야 한다. 그리고 최종 ..