수연수 작업장
프로그래머스 스킬트리

[프로그래머스] 스킬트리 - Java, Python

문제 스킬트리 Summer/Winter Coding(~2018) 아이디어 문제 분류는 자료구조라고 되어있는데 간단한 문자열 문제인 것 같다. 다른 사람들의 풀이를 보니 정규표현식을 사용하는 방법도 있는데 나는 그냥 반복문을 통해 겹치는 문자들을 뽑아내는 코드를 작성했다. 사용자의 skill_tree에서 정해진 순서인 skill에 들어있...

프로그래머스 양과 늑대

[프로그래머스] 양과 늑대 (2022 KAKAO BLIND RECRUITMENT) - Python

문제 양과 늑대 아이디어 처음엔 BFS로 접근했는데 방문 처리 시점을 어떻게 해야할지 몰라서 방황했다. 결국 DFS로 풀 수 있었다. 먼저 그래프 탐색을 위해 주어진 간선 정보를 바탕으로 단방향 인접리스트를 만든다. 트리 형식으로 주어지기도 하고, 부모 -> 자식 순서로 방문하기 때문에 단방향 인접리스트면 충분하다. (자...

프로그래머스 무인도 여행

[프로그래머스] 무인도 여행 - Java, Python

문제 무인도 여행 아이디어 문제 설명은 자바를 기준으로 합니다. 풀이 과정은 동일하나 파이썬 코드는 여기를 참고해주세요. bfs 탐색으로 각각의 섬을 방문하여 그 합을 구해 저장한다. 참고로 새로운 섬 탐색을 시작할 때 visited 배열을 초기화하면 안된다. 괜히 새로운 섬을 탐색할 때 visited를 초기화하는 바람에 테케...

[프로그래머스] 리코쳇 로봇 - Java

문제 리코쳇 로봇 아이디어 bfs 탐색으로 목표지점(G)까지 최소 이동 횟수를 구한다. 👉🏻 큐에 저장할 정보는 현재 좌표(x, y)와 현재 좌표까지의 이동 횟수(c) 이 때 핵심은 한 칸씩 이동하는 것이 아니라 장애물 D가 나타나기 전까지를 1번의 이동으로 친다. 👉🏻 현재 좌표 x, y에서 상하좌우 방향(dx, dy)의 다음 이동할...