[백준] 16139 : 인간-컴퓨터 상호작용 (JAVA)
·
Algorithm
https://www.acmicpc.net/problem/16139📌 50점,,16139번 문제는 다음과 같은 조건에 따라 점수가 부여되는 문제였습니다. 서브태스크 1 (50점)문제열의 길이는 2000자 이하, 질문의 수는 2000개 이하이다.서브태스크 2 (50점)추가 제한 조건이 없다. 문제를 보고 간단히 구현해 풀었으나, 50점만 받았습니다..🥲 50점 받은 코드입니다.import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReade..
[백준] 10816 : 숫자 카드 2 (JAVA)
·
Algorithm
https://www.acmicpc.net/problem/10816 🚩이진 탐색문제의 알고리즘 분류를 확인하기 전에 문제를 읽자마자, map.getOrDefault를 활용해 간단히 해결할 수 있었습니다. 아래는 map.getOrDefault를 사용해 통과한 코드입니다.import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(n..
[백준] 1916 : 최소비용 구하기 (JAVA)
·
Algorithm
https://www.acmicpc.net/problem/1916 🚩다익스트라 (Dijkstra) 1916번 문제를 보자마자 기본적인 다익스트라 알고리즘으로 해결할 수 있겠다고 생각을 했습니다. 평소에 알고 있던 다익스트라 방식으로 구현을 진행했고, 예제 출력도 정상적으로 나왔기 때문에 정답 제출을 했는데요..  결과는 시간 초과입니다🥲15% 지점에서 계속 시간 초과가 발생했고, 문제를 다시 확인해 보니 시간제한이 0.5초 인걸 확인할 수 있었습니다. 시간 복잡도를 개선하기 위해 코드 분석을 해봤지만 문제의 원인은 찾지 못했고 검색을 통해 해결책을 찾아보니, queue에서 poll() 연산을 수행할 때 해동 노드의 방문 여부를 확인하는 처리가 필요하다는 것을 알게 되었습니다. '근데.. queue.a..
[백준] 16953 : A -> B (JAVA)
·
Algorithm
https://www.acmicpc.net/problem/16953 🚩NumberFormat오늘은 백준 16953번을 BFS을 이용해서 Java로 풀어봤습니다. 생각보다 간단한 문제라고 생각이 들었고 몇 분 만에 구현할 수 있었습니다. 하지만 계속 백준에서 런타임 에러(NumberFormat) 결과를 받았습니다. Intelli J에서는 예제를 전부 통과했는데 말이죠.. NumberFormat이 발생하는 이유는 주로 2가지가 있다고 합니다.문자열 형식 오류 : 변환하려는 문자열에 숫자가 아닌 문자가 포함된 경우입니다. 예를 들어, "123a" 같은 문자열은 숫자가 아니므로 변환할 수 없습니다.숫자 범위 초과 : Integer.parseInt나 Long.parseLong은 각각 int와 long의 범위를 ..
[백준] 11054 : 가장 긴 바이토닉 부분 수열 (JAVA)
·
Algorithm
https://www.acmicpc.net/problem/11054 🚩DP백준 11053번 문제인 '가장 긴 증가하는 부분 수열'을 풀어본 경험이 있어서 쉽게 접근할 수 있었습니다.11053번은 단순히 오른쪽 방향으로 증가하는 가장 긴 부분 수열을 구하는 문제였지만, 이번 문제는 증가 후 감소하는 가장 긴 부분 수열을 찾아야 했습니다. 부분 수열 문제는 보통 DP나 이분 탐색을 활용해서 해결하는 경우가 많기 때문에, 이번에도 DP로 접근했습니다. 🤔 증가 후 감소하는 부분 수열..?한쪽 방향으로 증가하는 가장 긴 부분 수열 문제만 풀어서 그런가.. 증가 후 감소하는 부분 수열 구현이 바로 떠오르지 않았습니다.곰곰이 고민한 끝에, 왼쪽에서 증가하는 부분 수열과 오른쪽에서 증가하는 부분 수열 각각 구한 ..
[백준] 13549 : 숨바꼭질 3 (JAVA)
·
Algorithm
https://www.acmicpc.net/problem/13549 🚩최단 경로최단 경로 문제였고, 각 동작에 따른 가중치가 다르기 때문에(+1과 -1은 가중치가 1이고, *2는 가중치가 0) 다익스트라 알고리즘으로 접근하였습니다. 또한, 가중치가 낮은 순서대로 실행하기 위해 Queue 대신 우선순위 큐를 사용했습니다. 아래는 우선순위 큐로 제출한 코드입니다.import java.io.*;import java.util.*;class Node { int num; int depth; public Node(int num, int depth) { this.num = num; this.depth = depth; }}class Main { static int K..