📚 문제 19236번: 청소년 상어 첫째 줄부터 4개의 줄에 각 칸의 들어있는 물고기의 정보가 1번 행부터 순서대로 주어진다. 물고기의 정보는 두 정수 ai, bi로 이루어져 있고, ai는 물고기의 번호, bi는 방향을 의미한다. 방향 bi는 www.acmicpc.net 🔍 아이디어 시뮬레이션 문제입니다. 삼성의 시뮬레이션 문제는 문제를 잘 읽고 문제에 적힌 순서 그대로 코드를 짜는 것이 중요한 것 같습니다. 이를 위해서 먼저 이동해야할 물고리를 모두 식별하고, 해당 물고리를 index순으로 정렬 후에 이동시킵니다. 이동 후에는 상어가 움직입니다. 여기서 상어가 먹을 수 있는 모든 물고리에 대해서 DFS를 진행합니다. (물고기가 현재 이동 방향으로 이동할 수 없다면 반시계방향으로 45도 회전한다.) ->..
📚 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔍 아이디어 처음에는 해시맵과 dfs 방법을 이용하여 각 도시에 연결된 다음 코스를 넣고 dfs로 탐색하면서 각 경로에서 갈 수 있는 다음도시를 모두 방문하는 방식으로 진행하였습니다. 이후에 depth 가 티켓의 수만큼 된다면 모든 티켓을 사용한 것이므로 가능 경로여서 리턴하도록 하였습니다. 📝 풀이 import java.util.*; class FindPath43164 { public static final String ICN = "ICN"; HashMap hash = new HashMap(); L..
📚 문제 1189번: 컴백홈 첫 줄에 정수 R(1 ≤ R ≤ 5), C(1 ≤ C ≤ 5), K(1 ≤ K ≤ R×C)가 공백으로 구분되어 주어진다. 두 번째부터 R+1번째 줄까지는 R×C 맵의 정보를 나타내는 '.'과 'T'로 구성된 길이가 C인 문자열이 주어진다 www.acmicpc.net 🔍 아이디어 해당 문제에서 확인할 점은 왼쪽 아래에서 오른쪽 위로 향한다는 점입니다. 이 부분만 주의해서 DFS 알고리즘을 수행하면 됩니다. DFS알고리즘을 선택한 이유는 K번째 시간에 (0, c-1) 지점에 오는 것이므로 경우의 수를 세기 좋은 깊이 우선탐색을 이용하여 문제를 해결하였습니다. (BFS로 풀면 최단 거리를 구하기는 용이하지만 각 경로에 대해서 해당 경로에 따른 방문탐색을 비교하고 k번째 인 것을 확..
📚 문제 2758번: 로또 선영이는 매주 엄청난 돈을 로또에 투자한다. 선영이가 하는 로또는 1부터 m까지 숫자 중에 n개의 수를 고르는 로또이다. 이렇게 열심히 로또를 하는데, 아직까지 한 번도 당첨되지 않은 이유는 www.acmicpc.net 🔍 아이디어 처음 문제를 봤을 때는 그냥 dfs를 이용하는 풀이를 생각했다 -> 그래서 3번 시간 초과 났다 (dfs에서도 최적화 가능한 줄 알고 여러 번 도전했다.) 3번이나 시간초과 후에는 dp를 떠올렸다. 생각해보니까 가능하다는 생각이 들었다. 그래서 dp로 수정하고 제출하니까 16%에서 틀렸습니다 라는 메시지가 나와서 당황했다. 뭐지.. 설마 타입문제인가 라는 생각으로 엣지 케이스를 넣으니까 음수로 나와서 오버플로우발생을 확인했다 이후에 long으로 선언..