본문 바로가기

java7

[백준] 두 배열의 합 - 2143 Java 백준의 두 배열의 합 문제를 풀어보았다.(Java) 구현에 사용한 알고리즘은 TwoPointer이다. TwoPointer에 대해 생소하여서 기존에 풀었던 기초라고 생각한 문제로 다시 풀어보았다. 이번 문제로 개념을 좀 잡은 것 같다. 작성한 코드는 아래와 같다. 두 배열의 부분합을 계산한 뒤 리스트에 넣고 정렬한다. 정렬한 리스트를 토대로 투 포인터를 사용하여 제시한 합과 동일한 부분합을 계산한다. package baekjoon; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; impo.. 2024. 2. 18.
[백준] 색종이 붙이기 - 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.
[프로그래머스] 미로 탈출 명령어 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.