📚 문제 https://school.programmers.co.kr/learn/courses/30/lessons/388351 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 🔍 아이디어 시간을 60분 단위로 계산하는 것이 포인트.또한 시간이 0530과 같은 형식이 아닌 530과 같이 들어오기에 잘 잘라서 계산해야한다. 📝 풀이 import java.util.*;class Solution { public int solution(int[] schedules, int[][] timelogs, int startday) { int answer = 0; int peopleCnt = ..
[JAVA]389480 완전 범죄 📚 문제 https://school.programmers.co.kr/learn/courses/30/lessons/389480 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 🔍 아이디어 bfs를 통한 완전 탐색형 구현.but 확인했던것은 재확인하지 않도록 해야 시간 초과를 면할 수 있다. 📝 풀이 import java.util.*;class Solution { public int solution(int[][] info, int n, int m) { int min = Integer.MAX_VALUE; boolean[][] saved; ..
[JAVA]389479 서버 증설 횟수 📚 문제 https://school.programmers.co.kr/learn/courses/30/lessons/389479 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 🔍 아이디어 서버를 증설해야할 타이밍에 생성하고 k시간이후에 자동으로 해제 되도록 한다. 📝 풀이 import java.util.*;class Solution { public int solution(int[] players, int m, int k) { int servers = 0; PriorityQueue pq = new PriorityQueue(); ..
📚 문제 https://www.acmicpc.net/problem/1111 🔍 아이디어 절댓값 내의 범위가 -100, 100 사이라 하여 완전 탐색을 고려하였다.1. 실수 포인트 : -100 ~ 100 사이에서 A가 반드시 나오지 않는다. B가 커버칠수도 있다 (-100 , 99 와 같은 케이스 )input:3-100 -99 2output:10203// 수열의 세 번째 수로 2가 아니라 2 이상 100 이하의 수 중 아무거나 사용하여도// 모두 곱해지는 수의 절댓값이 100을 넘습니다.// -100 * 101 + 10001 = -99, -99 * 101 + 10001 = 2출처 : https://www.acmicpc.net/board/view/107405 2. 실수 포인트 : 중복 값을 비교하는..
📚 문제 https://www.acmicpc.net/problem/1153반례 확인 : https://testcase.ac/problems/1153 1153번 네 개의 소수 - Testcase AC반례 찾기 실행 횟수11번 반례 찾은 횟수6번 최근 1주일 실행 횟수3번testcase.ac 🔍 아이디어 1. N미만의 소수를 모두 미리 찾는다.2. 골드 바흐의 추측 짝수는 두개의 소수로 반드시 표현 가능하다. ( 즉, 짝수 + a + b 의 조합으로 만든다)2-1. 짝수인 경우는 ( 2+2 + (짝수) 로 가능한지 확인) 2-2 홀수 인 경우는 ( 2+3 +(짝수)로 가능한지 확인) 📝 풀이 package 백준.수학.에라토스테네스의체;import java.io.BufferedReader;import..
📚 문제 https://www.acmicpc.net/problem/16947🔍 아이디어 1. Cycle을 찾는다. -> DFS2. Cycle에 속한 것들만 추려 거기서 부터 시작되는 것들의 Depth(distance)을 찾는다. -> BFS 실수 했던점 : casting 오류 (Integer 과 Integer을 비교하면 reference만 비교한다. 주의 필요) Cycle을 찾는법 : (하기 두 개의 방법은 싸이클이 하나일때만 생각한 것입니다)1. union find ( findParents(a) == findParents(b) 인 경우면 이미 두개가 같은 부모를 향하는 것으로 싸이클임 존재함을 의미)2. DFS (이미 방문된 노드라면 싸이클이 존재함을 의미한다) 📝 풀이 package 백준...
📚 문제 https://www.acmicpc.net/problem/1377 🔍 아이디어 버블 소트버블 소트는 왼쪽에서 오른쪽으로 인접한 두 값을 비교하면서,큰 값을 오른쪽으로 한 칸씩 밀어내는 방식으로 작동한다. (즉 작은값을 기준으로 오름차순 하고 있다)한 패스를 돌 때마다 가장 큰 값이 끝으로 보내진다.핵심 인사이트버블 소트에서는 큰 값이 오른쪽으로 한 칸씩 이동하므로,가장 많이 움직인 원소가 정렬 완료 시점을 결정한다. (왼쪽으로 이동한것들) 이때 그 원소가 정렬된 위치에 도달하기까지 몇 번의 패스가 필요한지가 관건이다.계산 방식정렬 전 배열에서 각 값의 원래 인덱스 - 정렬된 인덱스를 계산한다.(정렬된 위치보다 원래 인덱스가 뒤에 있는 값, 앞으로 이동한 것들)가장 큰 이동 거리에 +1을..
📚 문제 https://www.acmicpc.net/problem/22856 22856번: 트리 순회 노드가 $N$개인 이진 트리가 있다. 트리를 중위 순회와 유사하게 순회하려고 한다. 이를 유사 중위 순회라고 하자. 순회의 시작은 트리의 루트이고 순회의 끝은 중위 순회할 때 마지막 노드이다. www.acmicpc.net 🔍 아이디어 만약 현재 노드가 유사 중위 순회의 끝이라면 유사 순위를 종료한다는 부분을 잘못 이해해서 여러 번 틀렸던 문제였습니다. 이 구문은 현재 노드가 중위 순회가 끝났다면 다시 올라가지 않아도 된다는 것을 의미합니다. 즉 왼쪽으로 가는 경우는 반드시 루트로 다시 올라와야 하지만 오른쪽의 경우는 중위순회가 끝난 상태라면 다시 올라오지 않아도 됩니다. (중위 순회 : 왼쪽 자식 -> ..
📚 문제 https://www.acmicpc.net/problem/11437 11437번: LCA 첫째 줄에 노드의 개수 N이 주어지고, 다음 N-1개 줄에는 트리 상에서 연결된 두 정점이 주어진다. 그 다음 줄에는 가장 가까운 공통 조상을 알고싶은 쌍의 개수 M이 주어지고, 다음 M개 줄에는 정 www.acmicpc.net 🔍 아이디어 공통 조상을 찾는 문제입니다. 각 노드의 깊이를 먼저 BFS, DFS를 이용하여 계산합니다. (이때 부모 노드도 함께 지정해줍니다, parents 배열) 이후에 a,b 노드의 공통 조상을 찾는 경우 a의 깊이, b의 깊이를 비교하여 두 노드의 깊이가 동일할 때까지 부모로 이동하며 올라옵니다 두 노드의 깊이가 같아졌으면 두 노드를 함께 부모로 노드로 올리는것을 반복합니다...
📚 문제 https://www.acmicpc.net/problem/13418 13418번: 학교 탐방하기 입력 데이터는 표준 입력을 사용한다. 입력은 1개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 건물의 개수 N(1 ≤ N ≤ 1,000)과 도로의 개수 M(1 ≤ M ≤ N(N-1)/2) 이 주어진다. 입력의 두 번 www.acmicpc.net 🔍 아이디어 mst를 활용하여 풀이하였습니다. *(다른 분들과 풀이가 달라 맞는 풀이인지 확신이 들지 않습니다. 참고 부탁드립니다) 가장 힘이 드는경우는 가장 많은 경사로(같은 길이 나오지 않기때문)를 이용하는 경우라고 생각하였습니다 따라서 먼저 경사로를 이용하는 경우의 모든 경로를 연결합니다. 이때 연결된 경사로의 개수의 제곱이 점수가 됩니다. 가장 ..