2024.06.29기준 - 실버2 백준, BEAKJOON, BOJ, JAVA, 자바 풀이이 문제는 원점에서 바라봤을 때, 보이는 학생의 수를 구하는 문제입니다. 제가 생각하는 문제의 핵심은 기울기는 같아도 앞에 있냐 뒤에 있냐에 따라서 둘 다 보일 수 있다는 거라고 생각합니다. 1. 각 위치별로 저장할 수 있는 리스트를 생성합니다.List u = new LinkedList(); // 위쪽List d = new LinkedList(); // 아래쪽List r = new LinkedList(); // 왼쪽List l = new LinkedList(); // 오른쪽List ul = new LinkedList(); // 위오른쪽List ur = new LinkedList(); // 위왼쪽List dl = new..
2024.06.24기준 - 실버1백준, BEAKJOON, BOJ, JAVA, 자바 풀이이 문제는 친구의 관계를 입력 받을 때, 유저 중 모든 친구와 제일 가까운 유저를 출력하는 문제입니다. 이 문제에 접근하기 위해서 플로이드 위셜 알고리즘을 통해 접근을 하였습니다. 플로이드 워셜 알고리즘그래프 내 모든 정점 쌍의 최단 경로를 반복적으로 계산합니다.두 정점 사이의 최단 경로가 어떤 중간 정점을 거쳐서 갈 때 더 잛은지를 확인하여 입력하는 방식입니다.플로이드 위셜 알고리즘 작동 과정1. 초기화● 그래프의 인접 행렬 d를 사용합니다. 여기서 d[i][j]는 정점 i에서 정점 j로 가는 초기 가중치를 의미합니다.● 만약 i에서 j로 직접적인 간선이 없다면 d[i][j]를 무한대로 설정합니다. 그러나 자기 자신으..
2024.06.23기준 - 실버2백준, BEAKJOON, BOJ, JAVA, 자바 풀이이 문제는 일렬로 들어오는 박스에서 작은 박스가 큰 박스에 겹칠 수 있을 때, 가장 많이 겹칠 수 있는 박스의 수를 계산하는 문제입니다. 예제를 통해서 문제에 대한 설명을 진행하도록 하겠습니다.// 예제61 3 5 8 4 9 1. 기본적으로 box를 담는 배열과 겹치는 수를 담는 dp배열을 생성해줍니다.// 박스의 크기를 저장할 배열box = new int[n + 1];for (int i = 1; i 여기서 dp[1] = 1인 이유는 처음 박스는 하나만 존재하기 때문에 넣을 수 있는 박스가 없습니다.dp의 참조하는 값보다 앞에 값을 참조하기 때문에 1번째 인덱스는 1로 깔고 갑니다.※ 인덱스는 1부터 시작을 했습니다. ..