Java4 (java)프로그래머스 미로 탈출 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 문제를 보자 마자 bfs라는 풀이법을 떠올렸다. 먼저 레버에 도착하는 최소의 거리를 구하고 또 레버에서 bfs를 시작해서 출구로 가는 최소한의 거리를 구하면 된다. 그런데 레버에 도착하지 못하는 경우에는 바로 return -1을 해주어야 하는데 이 경우를 찾지 못해서 조금 해맸다. import java.util.*; class Solution { public int solution(String[] maps) { int N = maps.length; int M = maps[0].length(); ch.. 2023. 7. 20. (java)BOJ 13413 오셀로 재배치 13413번: 오셀로 재배치 로봇을 좋아하는 세희는 로봇동아리에서 카메라와 센서, 라즈베리 파이, 집게발을 이용해 로봇을 완성하였다. 이 로봇을 통해서 오셀로 재배치라는 작업을 하려고 한다. 오셀로 말은 앞면이 검 www.acmicpc.net 문제 풀이 난이도를 모르고 딱 처음에 봤을 때는 bfs가 떠올랐다. 근데 문제를 자세히 보면 입력 범위 자체도 bfs로 풀기는 말이 안되고 풀이 자체도 bfs로는 안될 것으로 판단됐다. 돌을 다른 것과 순서를 바꿔주는 것은 한 번에 두 개의 돌을 바꿔주기 때문에 그리디하게 최대한 많이 두 개의 돌의 순서를 바꿔주면 된다고 생각했다. 그리고 남는 돌들은 그냥 목적과 같은 색으로 바꿔주면 된다. package solving; import java.io.BufferedR.. 2023. 7. 20. (java) BOJ 14427 수열과 쿼리 15 14427번: 수열과 쿼리 15 길이가 N인 수열 A1, A2, ..., AN이 주어진다. 이때, 다음 쿼리를 수행하는 프로그램을 작성하시오. 1 i v : Ai를 v로 바꾼다. (1 ≤ i ≤ N, 1 ≤ v ≤ 109) 2 : 수열에서 크기가 가장 작은 값의 인덱스를 www.acmicpc.net 문제 풀이 이 문제는 자료구조를 활용해서 문제를 푸는 것이 핵심이다. priority queue를 사용해서 O(logN)안에 수열에서 가장 큰 수를 뽑아낼 수 있다. 하지만 pq 내의 값을 변경해야 하는 경우가 생긴다. 이 때 pq내의 값을 직접 바꾸는 것이 아니라 값에 대한 version을 도입해서 최신 version의 값이 아니라면 pq에서 나온 값을 무시하는 식으로 코드를 짰다. import java.i.. 2023. 7. 14. (java) BOJ G4 4179 불! 4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문자 www.acmicpc.net 문제풀이 그래프 탐색을 하면 된다. 주의할 점: 지훈이가 밖으로 나가야 한다. 그리고 불퍼지는 것을 외부에 queue로 따로 빼주어서 가장자리 불만 퍼지게 해주어야 시간 초과에 걸리지 않는다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayDeque; import java.util.Queu.. 2023. 7. 13. 이전 1 다음