BFS
-
[프로그래머스] 숫자 변환하기 자바 (Level 2) BFS코딩테스트 2025. 4. 28. 10:05
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/1545381. 문제 요약x를 y로 변환하기까지 소요되는 최소 연산횟수 구하기불가능할 경우 -1연산은 x * 2 , x * 3, x + n 3가지 연산을 사용한다.2. 핵심 아이디어BFS방식 . y까지 가는 가장 짧은 경로Queue에 (값, 연산횟수) 저장3가지 연산을 수행해 큐에 추가y를 만나면 그때의 연산횟수 리턴 (y 조우 연산횟수 == 최소 연산횟수)방문체크(visited) 를 해서 같은 값을 중복 방문하지 않게 한다3. 풀이 코드public int solution(int x, int y, int n) { Queue queue = new LinkedList(); ..
-
[프로그래머스] 무인도 여행 자바 (Level 2) BFS코딩테스트 2025. 4. 26. 13:26
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/1545401. 문제 요약바다 ‘X’로 구분된 지도에서 숫자로 연결된 섬을 구분한다구분된 섬들의 내부숫자의 합 구하기2. 핵심 아이디어BFS방식으로 ‘X’가 아닌 연결된 값들의 합 구하기3. 풀이 코드/** * * @param maps 'X' : 바다 1~9 : 무인도. * @return 각 연결된 숫자그룹(무인도)내의 합 오름차순 */ public int[] solution(String[] maps) { int rows = maps.length, cols = maps[0].length(); boolean[][] visited = ..
-
[프로그래머스] 미로탈출 (Level 2) 자바 BFS 큐코딩테스트 2025. 4. 24. 09:34
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/1599931. 문제 요약5개의 문자 S(시작) E(출구) L(레버) O(통로) X(장애물) 로 이루어진 미로S ~ L ~ E 까지 걸리는 시간한 칸을 이동하는데 1초 소요되며 도달 불가능시 -1 반환.2. 핵심 아이디어출발점 to 레버, 레버 to 출구를 BFS 큐 방식으로 탐색3. 풀이 코드public int solution(String[] maps) { int rows = maps.length, cols = maps[0].length(); int[] start = {0,0}, lever = {0,0}, exit = {0,0}; for(int i =..
-
[프로그래머스 level2] 리코쳇로봇 자바 BFS 큐코딩테스트 2025. 4. 20. 17:19
https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제* @param board 보드상황 표현. "." : 빈 공간, "R" : 출발위치 "D" : 장애물 "G" : 목적지* @return G까지 최소 이동거리. 불가능시 -1;이 게임은 한 번 이동할 때 상하좌우 한 방향으로 벽이나 장애물에 부딪힐 때 까지 계속 이동한다.주어진 board를 바탕으로 R -> G까지 필요한 최소 이동거리를 구하여라. (불가능할 경우 -1)접근보드의 출발점 ~ 목적지까지의 최소거리는 BFS방식이 효율적이라고 알고..
-
[프로그래머스 level2] 석유시추 자바 BFS코딩테스트 2025. 4. 17. 09:09
https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제int[][] land는 땅의 정보이며 0은 빈 땅, 1은 석유를 의미함.각 칼럼별로 시추하였을 때 최대 시추량은 얼마인지 구하시오. 접근Map> 로 칼럼별로 존재하는 석유 위치를 저장하고 이를 활용하려 했음.그러나 그 이후의 방법이 떠오르지 않음.public int solution(int[][] land) { Map> oilMap = new HashMap(); //칼럼별 석유 위치 정보가 필요함. fo..
-
[프로그래머스] 지게차와 크레인 자바 BFS코딩테스트 2025. 4. 10. 19:25
https://school.programmers.co.kr/learn/courses/30/lessons/388353 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제storage는 컨테이너의 상황도이며 맨 윗줄부터 순서대로 나열되어 있다.requets는 꺼낼 요청들의 모음이다.request가 한글자인 경우 지게차를 사용해서 외곽에서부터 접근하여 꺼내고두 번 반복되는 경우 크레인으로 한 번에 접근해서 꺼낸다. request를 모두 수행하고 남은 컨테이너의 수를 반환하시오. 접근1.String[][] containers에 storage 정보를 담는다.2. request를 순회하며 , request의 길이에..