본문 바로가기

전체 글109

99클럽 코테 스터디 5일차 TIL (24444번: 알고리즘 수업 - 너비 우선 탐색 1) 문제https://www.acmicpc.net/problem/24444 학습 키워드BFS 시도BFS를 사용해서 풀면된다. 풀이무방향 그래프이므로 map에는 u와 v 양쪽 다 저장해야한다.put(u, v);put(v, u);각 정점이 출력된 순서를 저장하는 orders와 출력 순서를 기억하기 위한 orderIndex를 선언한다.탐색했는지 여부를 저장하기 위한 visited를 선언한다.BFS 방식으로 탐색하면서 각 정점이 추가되는 지점을 찾아 order에 기록한다.import java.util.*;public class Main { private static int N; private static int M; private static int R; private static Map> map; private .. 2024. 11. 1.
99클럽 코테 스터디 4일차 TIL (24479: 알고리즘 수업 - 깊이 우선 탐색 1) 문제https://www.acmicpc.net/problem/24479 학습 키워드DFS 시도DFS 풀이각 정점의 출력 순서를 저장해야하기 때문에 각 정점의 순서를 저장하고 있는 visitedOrders와 순서를 기록하는 order를 선언한다.각 정점마다 연결된 간선을 저장하기 위해 map을 선언한다.모든 정점을 map에 추가하고, u와 v를 입력 받아 map에 추가한다. 양방향으로 추가하기 위해 u에 v를, v에 u를 추가한다.통해 모든 정점을 깊이 우선 탐색으로 탐색하면서 visitedOrders에 저장한다.visitedOrders에 저장된 정점의 모든 순서를 출력한다. 이때 방문하지 않은 정점은 초기값인 0으로 저장되어 있기 때문에 문제에서 출력으로 요구하는 '시작 정점에서 방문할 수 없는 경우 0.. 2024. 10. 31.
99클럽 코테 스터디 3일차 TIL (43238 입국심사) 문제https://school.programmers.co.kr/learn/courses/30/lessons/43238  학습 키워드이진 탐색 시도20분 동안 시간초과를 하지 않으면서 동작가능한 로직을 생각하지 못했고, 다른 사람 해석을 참고했다.(성공) 주어진 시간을 탐색하면서 그 시간동안 각 심사관들이 몇 명의 고객들을 처리했는지 계산하고, 기존 대기자의 수보다 많은 사람들을 처리했다면 그 범위를 좁혀가면서 가장 적은 시간동안 대기자들을 모두 처리했는지 계산하는 방법으로 풀었다. 풀이이진탐색을 하기 위해서 right의 값은 가장 오래 걸리는 심사 시간 * n을 해서 모든 경우를 전부 탐색할 수 있도록 설정했다.자료형들을 long으로 하는 이유는 심사하는데 걸리는 시간의 최대값이 1,000,000,000.. 2024. 10. 30.
99클럽 코테 스터디 2일차 TIL (11561번: 징검다리) 문제https://www.acmicpc.net/problem/11561학습 키워드이진 탐색 시도(시간초과) 1부터 차례대로 더하면서 n이 됐을 때, 더한 횟수 구하기완전 탐색?이렇게 구하게 되면 입력값으로 최대 10^16이 들어온다고 할 때, 10^8정도 소요된다. 모든 테스트케이스가 다 성공하는데 시간제한이 1초이므로 최악의 경우 한 개의 테스트만 돌면 끝나기때문에 시간초과가 발생한다.(성공) 등차수열 공식과 이진 탐색을 사용해서 값 구하기이진 탐색을 통해 (n * (n + 1)) / 2가 주어진 징검다리의 마지막 칸 보다 작거나 같은 경우, 밟았다고 판단하고 값을 저장해나가면서 가장 큰 값을 구하면 된다. 풀이import java.util.*;public class Main11561 { private.. 2024. 10. 29.
99클럽 코테 스터디 1일차 TIL (1072번: 게임) 문제https://www.acmicpc.net/problem/1072학습 키워드이진 탐색 시도(시간초과) 지금까지 진행했던 게임만큼 1씩 더해가면서 승률이 바뀔 때까지 계산하기주어진 게임 횟수(x)가 10, 이긴 게임(y)이 8인 경우에는 게임 횟수가 20일 때까지 승률이 변하는지 계산한다.입력으로 주어지는 게임 횟수(x)의 최대값이 1 ≤ X ≤ 1,000,000,000 이기 때문에 최대 10억번 계산하므로 10초가 걸리게 되는데 시간 제한이 2초이므로 시간초과가 된다.(불가능한듯?) 1을 더했을 때 추가되는 소수점을 계산하고 승률이 바뀌는 지점을 찾는다.float와 double은 부동소수점을 사용하기 때문에 소수점의 정밀도가 떨어져서 자세한 값을 찾기가 어렵다.BigDecimal을 사용하는 방법으로도.. 2024. 10. 28.
[bramp/ffmpeg-cli-wrapper] invalid time 'N/A' 예외 발생 원인 파악 들어가기 전원인을 읽기 전에 정리를 먼저 본 다음 보시는 걸 추천합니다.문제 발생실행한 코드private String encodingToHls(File file) throws IOException { String uploadedFileUrl = uploadPath + "/master.m3u8"; FFmpegProbeResult probeResult = fFprobe.probe(file.getAbsolutePath()); FFmpegBuilder fFmpegBuilder = new FFmpegBuilder() .setInput(file.getAbsolutePath()) .overrideOutputFiles(true) .. 2024. 10. 20.