[프로그래머스] 92343 양과 늑대 - JAVA - Lv3
·
알고리즘/문제풀이
[프로그래머스] 92343 양과 늑대 - JAVA - Lv3문제https://school.programmers.co.kr/learn/courses/30/lessons/92343 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 분석조건2진트리 각 노드의 양이나 늑대가 1마리씩 존재한다.양의 수가 늑대의 수보다 작거나 같으면 양은 잡아먹힌다.루트노드는 양이다.트리를 탐색하며 최대한 많은 양을 모을 때 양의 수를 출력.풀이방법BFS인데 일반적인 BFS가 아니다.방문처리하는 방법이 핵심이라고 생각하는데, 다른 BFS처럼 지금 노드의 번호를 저장하는 것이 아니라 양의 수, 늑대의 수, 방문 가능한 노드들을 ..
[프로그래머스] 43162 네트워크 - JAVA - Lv3
·
알고리즘/문제풀이
[프로그래머스] 43162 네트워크 - JAVA - Lv3문제https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 분석조건배열로 연결관계가 포함된 컴퓨터가 있다.컴퓨터끼리 직접, 혹은 간접적으로 연결되어 있으면 같은 네트워크라 하는데 전체 네트워크의 수를 구하는 문제풀이방법0번 컴퓨터부터 n-1번 컴퓨터까지 반복문을 돌면서 방문하지 않은 컴퓨터에서 BFS를 돌린다.코드import java.util.*;class Solution { public int solution(int n, int[]..
[프로그래머스] 159993 미로 탈출 - JAVA - Lv.2
·
알고리즘/문제풀이
[프로그래머스] 159993 미로 탈출 - JAVA - Lv.2문제https://school.programmers.co.kr/learn/courses/30/lessons/159993 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 분석조건문자열로 주어진 `maps`에서 S좌표에서 L좌표로, 그후 E좌표로 이동하는 최단 거리를 구하는 문제이다.같은 좌표를 다시 지날 수 있으며 S좌표에서 L좌표로 이동할 때 E좌표를 지날 수 있다.L좌표에서 E좌표로 이동할때도 S좌표를 지날 수 있다.1칸 이동할 때 1초가 걸릴때, 최단 시간을 구하기.풀이방법최단거리를 구하는 문제이므로 bfs를 이용한다.좌표와 카운트를..
[프로그래머스] 1844 게임 맵 최단거리 - JAVA - Lv.2
·
알고리즘/문제풀이
[프로그래머스] 1844 게임 맵 최단거리 - JAVA - Lv.2문제https://school.programmers.co.kr/learn/courses/30/lessons/1844문제 분석조건n*m 사이즈로 주어진 맵에서 0,0(문제에선 1,1) 좌표에서 n-1, m-1(n, m) 좌표로 이동하는데 최단 거리를 구하는 문제이다.풀이방법최단거리를 구하는 문제이므로 bfs의 가장 기본적인 문제이다.거쳐간 땅의 수를 구해야하는 문제이므로 간단하게 좌표와 카운트를 변수로 가지는 Node 클래스를 만들어 문제를 해결했다.처음 있던 위치부터 카운트해야하므로 초기 카운트가 1부터 시작한다.코드import java.util.*;class Solution { public int solution(int[][] ma..