본문 바로가기

전체 글145

BOJ 2493 탑 G5 Java https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 처음꺼보다 큰지 작은지를 비교해야함. 전형적인 stack 자료구조 1.5초 가 마음에 조금 걸리긴한다. 스택을 생각못했다면 배열로 해야하는데 50만번 x 50만번 연산을 진행해야하므로 불가. 입력받으면서 처리해볼 수도 있지 않을까? => 왼쪽으로 쏘는 것이기 때문에 받는것의 다음것을 알아야풀 수 있다. 다 받아놓고 처리해야한다. 배열은 결국 이미 정렬된 것 중에 마지막에 들어간 것이 처음 나오는.. 2024. 2. 5.
BFS visited 사용시점 visited 배열을 사용하는 것과 최소값 갱신 로직을 사용하는 것은 서로 다른 목적을 가지고 있습니다. 아래에서 각각의 차이점을 설명하겠습니다. visited 배열 사용: 목적: 중복 방문을 방지하여 불필요한 계산을 줄이고, 무한 루프를 방지합니다. 활용: 그래프나 맵에서 특정 노드나 위치를 방문했는지 여부를 체크합니다. 예시: 미로 찾기에서 특정 위치를 이미 방문했는지 확인하고, 이미 방문한 곳은 다시 방문하지 않도록 합니다. 효과: 중복 방문을 방지하여 탐색 속도를 향상시키며, 무한 루프를 방지하여 프로그램이 정상적으로 종료될 수 있습니다. 최소값 갱신 로직 사용: 목적: 최단 경로나 최소 비용을 찾을 때, 현재까지의 최소값을 갱신하며 탐색합니다. 활용: BFS나 다익스트라 알고리즘에서 최소값을 갱.. 2024. 1. 30.
BOJ 1244 스위치 켜고 끄기 JAVA https://www.acmicpc.net/problem/1244 1244번: 스위치 켜고 끄기 첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩 www.acmicpc.net import java.util.*; import java.io.*; public class 스위치켜고끄기 { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); in.. 2024. 1. 29.
JAVA BFS DFS 알고리즘 c++로만 구현했던 BFS와 DFS의 코드입니다. 자세한 설명은 아래 글을 참고해주세요. https://wannadev.tistory.com/96 BFS, DFS c++ - DFS란, 그래프 전체를 탐색하는 하나의 방법으로써, 하나의 가지(branch)를 모두 탐색한 이후에 다음 branch로 이동하는 방법이다. - 시작 노드에서 깊이가 커지는 방향으로 탐색을 진행하여 더 이 wannadev.tistory.com https://wannadev.tistory.com/116 BFS, DFS 활용 문제 고찰 BFS 문제를 많이 접하다 보니, BFS 문제 유형에 대해서 생각해보게 되었다. 나는 문제를 일반화 시키는 것을 선호한다. 만능은 없지만 정답에 가까워지기 편하기 때문이다. 먼저 그래프를 사용해 wanna.. 2024. 1. 15.