분류 전체보기166 말이 되고픈 원숭이 #1600 JAVA G3 https://www.acmicpc.net/problem/1600 1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net BFS, DFS를 연습하기 좋은 문제를 풀었다. 처음에는 DFS로 접근을 했고 이후에 시간초과가 발생해서 BFS로 수정하였다. 아이디어로는 visited 3차원을 이용해야한다는 것이다. 각 움직임의 경우를 다르게 본다는 것이 문제해결의 핵심이었다. 처음에는 K번 이동을 어떻게 적절하게 해주지에 대한 고민이 있었는데 BFS가 알아서 돌아줄것이라고 생각하고 안의 로직을 변경해줬다. 로.. 2024. 3. 1. 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. 이전 1 ··· 7 8 9 10 11 12 13 ··· 42 다음