DFS

알고리즘

테트로미노 2차원 배열로 관리하기

문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 재정의 테트로미노가 주어지고, 보드판이 주어진다. 보드판에 최대 몇 칸을 채울 수 있는지 확인하는 문제. 회전을 해서 넣을 수 있다. 문제는 테트로미노가 고정적이 아니라, 보드로 주어진다는 점. 테트로미노를 획득하고, 보드판에 맞는지 확인하는 과정은 어렵지 않다. DFS로 블럭 형태를 결정하고, 이에 맞는 보드판이 있는지 DFS 확인하고 비교하면 된다. 블럭을 어떻게 저장할 것이며 블럭의 회전을 어떻게 구현할 것인가가 핵심인 문제. 상대 좌표로 관리하기 시작 지점을 0, 0으로 계산하고 상대좌표를 계산하..

알고리즘

UnionFind와 순서 강제로 탐색하기

문제 & 재정의 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 위 문제는 상하좌우 방향에 인접한 블럭들의 크기를 구하는 전형적인 탐색 문제이다. UnionFind로 탐색하기 탐색이 가능한 것은 (x, y)를 기준으로 (x+-1, y)와 (x, y+-1) 총 4개의 경우로 탐색이 가능하다. 이 상하좌우 인접을 하나하나 탐색하는게 아니라, 각각의 그룹으로 묶을 수 있다면? 그룹별 크기를 구하는건 자연스럽게 할 수 있다. 그룹으로 묶는 방법은 여러가지가 있지만 MST를 구현할 때 사용하는 Un..

코딩 악귀
'DFS' 태그의 글 목록