코테 74

99클럽 코테 스터디 3일차 TIL 다익스트라(네트워크 복구)

https://www.acmicpc.net/problem/2211 사용 알고리즘다익스트라 아이디어1. 각 회선별 최단거리 계산 (다익스트라)2. 최단거리로 갱신될 때 각 현재 컴퓨터로 들어오는 컴퓨터의 번화 저장 유의점- 처음에 우선순위 큐에 방문할 노드를 넣고 방문처리를 해서,, 더 짧은 거리를 가지는 회선 탐색을 못함,,  -> 모든 인접 노드를 탐색한 후 해당 노드를 시작으로 하는 노드일 때 방문처리 제출코드package BOJ.Graph.Dijkstra;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class BOJ_2211_네트워크복구 ..

코테/백준 2025.01.15

99클럽 코테 스터디 2일차 TIL 트라이(가사 검색)

https://school.programmers.co.kr/learn/courses/30/lessons/60060 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  사용 알고리즘트라이 아이디어1. 단어 길이별 정방향/역방향 트라이 생성2. pro??? 형식으로 들어오면 해당 길이의 정방향 트라이 탐색해서 와일드카드 '?' 전 노드가 가지는 단어 수 ㅈ장3. ???pro 형식으로 들어오면 해당 길이의 opr??? 로 변경한 후 역방향 트라이 탐색해서 와일드카드 '?' 전 노드가 가지는 단어 수 저장 유의점- 쿼리가 모두 ? 로 이루어져 있을 때(ex.[?????]) 해당 길이를 가지는 트라이의 루트 노드가..

99클럽 코테 스터디 1일차 TIL 벨만포드(타임머신)

https://www.acmicpc.net/problem/11657 사용 알고리즘벨만-포드 아이디어1. 노드가 n개 일때 간선은 n-1개2. n-1번 돌면서 최단거리 계산3. n번째에서 최단거리가 변경되면 음의 싸이클 -> return true; 유의점거리를 계산하는 dist[] 배열 : int 값 범위 넘음 (언더플로우) -> long 형 제출코드package BOJ.Graph.BellmanFord;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class BOJ_11657_타임머신 { static class Point{ int..

코테/백준 2025.01.13

[BOJ] 1932 정수 삼각형 (Java)

https://www.acmicpc.net/problem/1932 아래층으로 내려갈 땐 지금 당장 값이 작아도 끝까지 도착했을 때의 값이 더 클 수 있다.그럼 반대로 생각해보면 된다!위층으로 올라갈 때 직전 값 중 큰 값을 누적해가면 dp[0][0]이 최댓값이 된다.for(int i=n-1; i>=0; i--){ for(int j=0; j package BOJ.DP;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class BOJ_1932_정수삼각형 { public static void main(S..

코테/백준 2024.12.10

[BOJ] 2170 선 긋기 (Java)

https://www.acmicpc.net/problem/2170 처음엔 pq를 사용했는데 시간초과가 떠서 방법을 변경했다.정렬 후에는 이후 값이 무조건 직전값에 영향을 받을 수 밖에 없기에 그때그때 확장하는 방법이 가능해진다. 1. x값 오름차순 정렬 x값이 같다면, y값 오름차순 정렬2. 만약 다음 값이 이전 값에 걸친다면 끝 좌표만 확장2. 만약 걸치지 않는다면 이전 선의 길이를 계산해 저장한 후, 현재 x, y를 새로운 시작과 끝 값으로 정의3. 마지막 선 길이까지 더한 후 결과 출력 package BOJ.Greedy;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java..

코테/백준 2024.12.08

99클럽 코테 스터디 35일차 TIL 구현(주사위 윷놀이)

https://www.acmicpc.net/problem/17825우선 윷놀이 판을 2차원 배열에 담아주었다.총 10번의 말 이동 순서를 순열로 뽑은뒤, 해당 순서로 게임을 진행하도록 하였다.게임을 진행할 때에는 각 말들의 저장해두고 싶은 현 상황을 Point 구조체를 만들어 담아두며 사용했다.이때 가장 중요한 것은 25, 30, 35, 40에서의 방문 처리 였는데, 이미 말이 놓여있는 자리로 이동하는 말의 경우 사용하면 안된다는 조건이 까다로웠다.결과 적으로 아래와 같이 제출하였지만 조금 더 다듬어야 할 것 같다. import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util..

코테/백준 2024.12.02

99클럽 코테 스터디 34일차 TIL 문자열(개인정보 수집 유효기간)

https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제의 핵심은 기간을 비교하면 되는 것이다.우선 약관종류에 따른 유효기간은 Map에 넣어 사용했고, 모든 비교를 일(days)로 바꿔 계산했다.  import java.util.*;class Solution { public int[] solution(String today, String[] terms, String[] privacies) { PriorityQueue pq = new PriorityQueue(); ..

99클럽 코테 스터디 33일차 TIL 문자열(신규 아이디 추천)

https://school.programmers.co.kr/learn/courses/30/lessons/72410 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문자열이 이렇게 어려웠던가.. 주어진 단계를 그대로 구현해내면 되는 문제였는데,풀고나서 다른 풀이를 보니 정규표현식을 사용하면 좀 더 깔끔하게 풀 수 있는 단계가 많았다.조만간 정규표현식을 따로 함 정리해야 할 듯.. class Solution { public String solution(String new_id) { String answer = ""; // 1. 대문자 -> 소문자 an..

99클럽 코테 스터디 32일차 TIL DP(가장 긴 바이토닉 부분 수열)

https://www.acmicpc.net/problem/11054 결국은 가장 긴 오름차순 수열과 가장 긴 내림차순 수열.근데 이제 오름차순의 끝나는 수와 내림차순의 시작하는 수가 동일할 때의 최대 길이를 구하는 문제이다.1. 가장 긴 증가하는 부분 수열을 찾아 dpUp배열에 저장한다.2. 가장 긴 감소하는 부분 수열을 찾아 dpDown배열에 저장한다. (이때 배열의 끝부터 역으로 오름차순 탐색했다.)3. 각 위치에서 dpUp + dpDown - 1 (현재 위치 수 중복) 을 계산하며 최댓값을 갱신한다. package Study.Week05;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;i..

코테/백준 2024.11.29

99클럽 코테 스터디 31일차 TIL DP(줄세우기)

https://www.acmicpc.net/source/86922116 알고리즘의 난이도가 올라가면 더 이상 알고리즘 난이도의 문제가 아닌 아이디어의 문제임을 알려주는 대표적인 유형의 문제. 별의별 생각을 다 해보며 규칙을 찾아봤는데 결국은 하나였다. 오름차순으로 만들어야 한다는 것.오름차순으로 만들기 위해 옮겨지는 아이의 최소 수는? 이미 오름차순인 번호를 제외하고, 나머지 번호를 옮겨주면 된다.즉, (총 학생 수 - 가장 긴 증가하는 부분 수열) 인 것이다~!가장 긴 증가하는 부분 수열은 이전에 넘 많이 글을 올렸어서 링크로 첨부하겠당.https://dev-zsunny.tistory.com/65 99클럽 코테 스터디 30일차 TIL DP(상자넣기)https://www.acmicpc.net/proble..

코테/백준 2024.11.27