(Java) 백준 11725 트리의 부모 찾기
·
알고리즘 (Java)
문제 링크 https://www.acmicpc.net/problem/11725 나의 기록 ✅ 알고리즘 분류 : 트리, BFS ✅ 성공 여부 : ✔ ✅ 문제 난이도 : 실버2 ✅ 체감 난이도 : Hard? 접근 방법 루트 노드가 1이라는 힌트가 주어지기 때문에, 2차원 배열의 인접행렬을 입력받고, 그에 따라 루트 노드에서부터 한 레벨씩 BFS로 전진하며 부모 노드를 찾으면 될 것이라 생각했다. 그러나 메모리 초과가 나고 마는데... 원인은 2차원 인접 행렬의 쓰이지 않는 수많은 메모리들. 일반적이라면 그냥 배열이 ArrayList보다 메모리 효율이 좋다고 알고 있지만, 이번만큼은 쓰이지 않는 메모리를 줄이기 위해 2차원 ArrayList를 사용하자. 코드 import java.io.BufferedReade..
(Java) 백준 1283 단축키 지정
·
알고리즘 (Java)
문제 링크 https://www.acmicpc.net/problem/1283 나의 기록 ✅ 알고리즘 분류 : 문자열, Set ✅ 성공 여부 : ✔ ✅ 문제 난이도 : 실버1 ✅ 체감 난이도 : Normal 접근 방법 알고리즘에 대한 어려움이라기보단 구현 방법에 대해 조금 고민할 수 있었던 문제. 제일 바깥의 for문에 pointA라는 별명을 붙여 조건 만족 시 continue로 다음 글자로 바로 넘어갈 수 있게 했다. Set을 통해 현재 등록되어 있는 문자들을 확인할 수 있도록 했는데, A와 a (대문자와 소문자)는 같은 문자 취급하므로 Uppercase와 Lowercase 각각 생성해 Set에 등록했다. 코드 import java.io.BufferedReader; import java.io.IOExce..
(Java) 백준 10808 스택
·
알고리즘 (Java)
문제 링크 https://www.acmicpc.net/problem/10808 나의 기록 ✅ 알고리즘 분류 : 스택 ✅ 성공 여부 : ✔ ✅ 문제 난이도 : 실버4 ✅ 체감 난이도 : Very Easy 접근 방법 스택의 각 함수들을 체험하는 느낌의 문제. 스택 연습하기 좋다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public class bj10828_스택 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(n..
(Java) 백준 2178 미로 탐색
·
알고리즘 (Java)
문제 링크 https://www.acmicpc.net/problem/17086 나의 기록 ✅ 알고리즘 분류 : BFS ✅ 성공 여부 : ✔ ✅ 문제 난이도 : 실버1 ✅ 체감 난이도 : Normal 접근 방법 평범한 2차원 배열 탐색 문제에 함정 살짝 추가한 느낌. DFS로는 시간초과 나고 BFS로 시간초과 없이 풀린다. 도착점에 도착했을 경우 바로 탈출해야 하며, 그렇지 않을 경우 불필요한 추가 탐색으로 오답이 나온다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java..
(Java) 백준 17086 아기 상어 2
·
알고리즘 (Java)
문제 링크 https://www.acmicpc.net/problem/17086 나의 기록 ✅ 알고리즘 분류 : BFS ✅ 성공 여부 : ✔ ✅ 문제 난이도 : 실버1 ✅ 체감 난이도 : Hard 접근 방법 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; class Point{ int x,y; public Point(int x, int y) { this.x = x; this.y = y; } } public class bj17086_아기상어2 { static int[] di = {-1,-1,0,1,1,1,0,-1}; static int[] dj = {..
(Java) 백준 11403 경로 찾기
·
알고리즘 (Java)
문제 링크 https://www.acmicpc.net/problem/11403 나의 기록 ✅ 알고리즘 분류 : 플로이드-와샬 ✅ 성공 여부 : ✔ ✅ 문제 난이도 : 실버1 ✅ 체감 난이도 : Normal 접근 방법 i노드에서 j노드까지 접근 가능한지 알아보려고 DFS 쓰면.... 시간초과 난다! 플로이드-와샬 알고리즘을 사용해 코드량도 줄였고 시간초과도 해결했다. i노드와 k노드가 연결되어 있고(adjMatrix[i][k] == 1), k노드와 j노드가 연결되어 있으면(adjMatrix[k][j] == 1) i노드와 j노드가 인접한 것으로 취급하여 1로 바꿔준다. 이렇게 3중 for문을 돌며 수정한 adjMatirix가 그대로 답이 된다. 코드 import java.io.BufferedReader; i..
고치불
'알고리즘 (Java)' 카테고리의 글 목록 (2 Page)