https://school.programmers.co.kr/learn/courses/30/lessons/87694 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아이디어 최단거리여서 BFS 로 풀었다. maps 만들기 최단거리 구하기 풀이는 어렵지 않았지만, 풀기 위해서는 위 두 가지를 구현하면서 반례를 잘 찾아야 했다. maps 만들기 처음에는 rectangle의 정보를 1:1 비율로 맵에 넣어주었는데, 이 때문에 최단거리를 찾을 때 문제가 있었다. 표시된 부분이 11 11 이런식으로 붙어서 표현됐기 때문에 ㄷ모양으로 움직이지 않고, | 이렇게 직선으로..
https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아이디어 bfs를 사용해서 풀었다. def bfs(begin, target, words, visited): queue = deque([(begin, 0)]) while queue: now, c = queue.popleft() if now == target: return c for i in range(len(target)): if now[i] == target[i]: continue try: tmp..
https://school.programmers.co.kr/learn/courses/30/lessons/1844# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아이디어 최단거리를 찾는 문제라서 bfs를 사용해서 풀었다. def bfs(x, y, N, M): nonlocal visited queue = deque([(x, y, 1)]) while queue: x, y, l = queue.popleft() if x == N-1 and y == M-1: return l for dx, dy in dv: nx = x + dx ny = y + dy if nx < ..
https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아이디어 dfs를 사용해서 풀었다. visited 방문 리스트를 만들어서 탐색을 하며 방문한 인덱스를 1로 변경해주었다. visited[idx] 가 0이면 dfs 시작 visited = [0] * n 방문 리스트는 컴퓨터 갯수만큼 만들어준다. count = 0 for idx in range(n): if visited[idx] == 0: count += 1 dfs(idx, computers[idx]..