본문 바로가기

PS23

[백준] 색종이 붙이기 - 17136 Java 백준의 색종이 붙이기 문제를 풀어보았다.(Java) 구현에 사용한 알고리즘은 Backtracking이다. 백트래킹 문제로 1x1, 2x2, 3x3, 4x4, 5x5로 이루어진 색종이 5개를 이용하여 1이 적힌 모든 칸을 색종이로 덮는 문제이다. BOJ1987 문제의 심화 버전인 것 같다. 5x5부터 비교하여 최대한 색종이를 적게 사용하도록 한다. 보드의 마지막에 도착하면 가장 작은 값을 초기화 한다. 작성한 코드는 아래와 같다. package baekjoon; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class BOJ17136 { static int[][] grid =.. 2024. 2. 18.
[백준] 달빛 여우 - 16118 Java 백준의 달빛 여우 문제를 풀어보았다.(Java) 친구의 소개로 풀어본 문제인데 오랜만에 PS를 풀어 관련 개념공부도 같이하였다. 구현에 사용한 알고리즘 또는 자료구조로는 Dijkstra, Graph, 우선순위 큐를 사용했다. 맨 처음에는 Java에서 보통 입력 속도를 줄이기 위해 사용하는 BufferedReader와 그냥 받은 입력을 String 배열에 담는 작업을 했는데 시간초과가 발생했다. 그래서, StringTokenizer를 사용했더니 통과했다. 작성한 코드는 아래와 같다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; // 달빛 여우, 달빛 .. 2024. 2. 13.
[프로그래머스] 미로 탈출 명령어 2023 KAKAO BLIND RECRUITMENT 미로 탈출 명령어 문제를 풀어보았다. BFS를 사용하여 접근하였고 사전 순서대로 이동하는 것은 정렬대신, 알파벳 사전 우선순위를 토대로 해당 방향으로 먼저 움직이게 작성하였다. 맨 처음엔 시간 초과가 발생하여 bfs() 메소드 내의 반복문에 적절하게 시간 단축 로직을 추가 작성하였다. BFS import java.util.LinkedList; import java.util.Queue; /** * n x m (x, y) -k-> (r, c) */ class Solution { static int n; static int m; static int x; static int y; static int r; static int c; static int k; sta.. 2024. 1. 27.