no image
[PGM]K번째 수
티어 : Lv. 1정답여부 : 정답💡문제● K번째 수 💡입출력 예 💡문제[i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소를 array 적용했을 때 나온 결과를 배열을 출력하면 되는 문제i : 시작j : 끝k : 위치 💡알고리즘 설계각 commands 길이만큼 빼준다.a , b , c : 값을 담아준다.각 a부터 b 만큼 배열을 담아주고 그 배열의 정렬다음 c 위치에 있는 배열을 빼서 answer에 담아준다. 💡시간복잡도O(NlogN) 💡코드import java.util.Arrays;class Solution { public int[] solution(int[] array, int[][] commands) { int[]..
2024.09.12
no image
[PGM]전화번호 목록
티어 : Lv. 2정답여부 : 오답💡문제● 전화번호 목록 💡입출력 예 💡문제 분석 요약 각 번호들이 있는데 접두사가 같은 번호가 있을경우 false 💡알고리즘 설계hashset : 번호를 담을 값각 번호를 하나씩 빼줌각 번호의 접두사를 만들어 비교있는경우를 false리턴 없는 경우 hash에 추가하고 true추가 💡시간복잡도O(NlogN) 💡코드import java.util.HashSet;class Solution { public boolean solution(String[] phone_book) { HashSet hashset = new HashSet(); for(String phone : phone_book) { for(int i = 1; i  ..
2024.09.11
no image
[PGM]같은 숫자는 싫어
티어 : Lv. 1정답여부 : 정답💡문제● 같은 숫자는 싫어 💡입출력 예 💡문제 연속으로 오는 숫자의 중복을 제거하고 숫자를 출력하면 되는 문제 💡알고리즘 설계스택이 비어있지 않고 스택의 끝자리 값이 같으면 패스그렇지 않은 경우 스택에 값을 넣어줌index에 끝자리 만큼 넣어줌스택은 위에서 부터 값이 나오기에 그 값을 answer 뒤에서 → 앞으로 배열에 넣어줌 💡시간복잡도O(N) 💡코드import java.util.*;class Solution { public int[] solution(int[] arr) { Stack stack = new Stack(); for(int i : arr) { if(!stack.isEmpty() && i == stac..
2024.09.11
no image
[PGM]경주로 건설
티어 : Lv. 3정답여부 : 오답💡문제● 경주로 건설 💡입출력 예 💡문제 분석 요약 죠르디가 도로을 건설하는데 최소한 비용이 듫게 건설비용을 출력하면 되는 문제1 은 벽 0은 벽이 없음직진 방향은 100원 코너는 500원이 들어감 💡알고리즘 설계N, M : 가로 , 세로arr : 도로cost : 최소 비용BFS 로 시작해 costs를 만들어 각 좌표에 상,하,좌,우 비용을 저장que에 x, y, 방향 그리고 현재 비용을 저장할 배열을 만들어줌큐가 비어줄때 까지 돌리는데 만약 목적지에 도달하면 최소한 비용 리턴만약 dir → 이전뱡향과 같은 방향이면 +100을 그렇지 않은 경우 방향이 바뀐 경우 코너 비용 추가만약 더 적은 비용으로 방문할 수 있는 경우가 있는 경우 que에 추가 💡시간복잡도O(..
2024.09.06
no image
[PGM]배달
티어 : Lv. 2정답여부 : 오답💡문제● 배달 💡입출력 예 💡문제 분석 요약 1번 노드에서 각 노드에 배달을 가는데 시간안에 갈 수 있는 노드의 개수를 구하면 되는 문제 💡알고리즘 설계dist : 각 노드에 배달이 가능한 노드를 저장하는 배열arr에 각 값에 500,001 최대 거리를 큰 값으로 넣어주며 자기 자신과 거리는 0으로 설정각 연결된 노드끼리 저장BFS 실행 → dist[1]에 0을 설정 시작점이 1임으로 1번마을 거리는 0으로 설정각 연결된 노드를 찾는데 연결된 마을이 있고 더 짧은 거리가 있으면 dist에 추가하고 큐에 추기BFS를 다 돌았으면 각 dist에 값이 N 시간보다 작으면 count++ 💡시간복잡도O(N^2) 💡코드import java.util.Arrays;impor..
2024.09.04
no image
[PGM]미로 탈출
티어 : Lv. 2정답여부 : 오답💡문제● 미로 탈출 💡입출력 예💡문제 분석 요약 미로탈출을 하면 게임임단 L 레버가 있는 경우 근처에 통과할수 있는 쪽으로 감통과를 할수 없는 경우 -1을 출력 💡알고리즘 설계배열을 char로 쪼개 miro에 담아줌각 miro에 출발이 S 인 경우 BFS 알고리즘을 실행만약 범위를 벗어나지 않고 X가 아닌 경우 미로 길을 찾음만약 E 즉 미로에 도착하면 time을 리턴💡시간복잡도O(N*M) 💡코드import java.util.LinkedList;import java.util.Queue;class Solution { static char[][] miro; static boolean[][] visit; static int[] dx = {-1, 1,..
2024.09.02
no image
[PGM]네트워크
티어 : Lv. 3정답여부 : 오답💡문제● 네트워크 💡입출력 예💡문제 분석 요약 연결되어 있는 네트워크 갯수를 구하면 되는 문제💡알고리즘 설계visited : 방문확인각 입력값을 복사해준다.DFS 알고리즘을 씀1번 컴퓨터부터 확인하면서 x와 i가 같지않고 1인 경우 그리고 방문하지 않은 경우 연결된 네트워크로 확인재귀함수로 연결된 컴퓨터를 확인 💡시간복잡도O(N*M) 💡코드class Solution { static boolean[] visited; public int solution(int n, int[][] computers) { int answer = 0; visited = new boolean[n]; for(int i = 0; i  ..
2024.08.16
no image
[PGM]게임 맵 최단거리
티어 : Lv. 2정답여부 : 오답💡문제● 게임 맵 최단거리 💡입출력 예💡문제 분석 요약 상대팀 전역에 도착할수 있는 최단거리를 출력 💡알고리즘 설계answer : 거리 계산dx ,dy : 좌,우,위,아래visited : 방문확인각 열 , 행 길이를 넣어줌visited 방문배열에 길이넣어줌BFS 0,0시작하여 maps과 같이 넣어줌0,0 시작하며 있는 위치는 1라고 가정 방문했음으로 visited true 변경만약 해당 경로에 도착했으면 answer에 넣고 break상하좌우 탐색하면서 만약 x 와 y가 0보다 작거나 n과 m보다 큰 경우는 만약 0을 만난경우벽을 만난 경우로 continue 패스만약 방문하지 않았고 1인 경우는 que에 추가하여 탐색 💡시간복잡도O(NM) 💡코드import ja..
2024.08.15
no image
[PGM]섬 연결하기
티어 : Lv. 3정답여부 : 오답💡문제● 섬 연결하기 💡입출력 예💡문제 분석 요약 n개의 섬 사이에 다리를 건설하는 비용(costs)이 주어질 때, 최소의 비용으로 모든 섬이 서로 통행 가능하도록 만들 때 필요한 최소 비용 💡알고리즘 설계비용을 기준으로 오름차순해준다.각 자기 자신을 부모로 초기화하나의 루트 노드를 다른 하나의 루트 노드의 자식 노드로 넣어 두 트리를 합침주어진 원소의 루트 노드 번호를 반환함 💡시간복잡도O(ElogV) 💡코드import java.util.Arrays;import java.util.Comparator;class Solution { static int[] island; public static int unionFind(int i){ if..
2024.08.14