프로그래머스 링크핵심 제한사항1 ≤ board의 행의 길이 (= N) ≤ 1,000 1 ≤ board의 열의 길이 (= M) ≤ 1,000 1 ≤ skill의 행의 길이 ≤ 250,000skill마다 board의 요소를 하나하나 바꿔주는 방식은 비효율적인 방식이다.
문제 링크반례 두개를 찾지 못해서 틀렸다.지나온 경로를 문자열 형태로 저장하는 방식으로 풀었다. 맞았다.갈 수 있는 경로를 저장하는 방식으로 푸니 맞았다.핵심 제한 사항2 ≤ info의 길이 ≤ 17info의 max값이 상당히 작으므로, 모든 노드를 살펴봐도 시간 제한
문제 링크효율성 테스트 마지막 네개를 통과하지 못했다.효율성 테스트 한개를 통과하지 못했다.이전에는 char\[]에 O, X를 담아서 사용했다면, 이번에는 이전 노드, 다음 노드, 인덱스, O/X 정보가 담긴 Node 배열을 활용하여 코드를 전개했다.즉, 노드와 노드를
모두 0으로 만들기먼저 a의 길이가 최대 30만까지 가능하기 때문에 완전 탐색 대신 효율적 방법으로 풀어야 함을 알게 되었다. 문제 설명과 그림을 보면서 두 가지를 가정해보았다. 첫째는 모든 가중치의 합이 0인 경우에만 횟수를 구할 수 있다는 점이다. 둘째는 말단 노드
캠핑(https://school.programmers.co.kr/learn/courses/30/lessons/1833구간합과 좌표 압축 개념을 몰라서 내 방식대로 접근했지만 틀렸다.x좌표 순으로 정렬한 후 y좌표 상한선과 y좌표 하한선 이내에 좌표가 위치할 경
길 찾기 게임좌표 압축과 재귀 함수를 사용하여 해결하였다. 그 후 다른 풀이를 보니 노드와 노드를 연결하는 방식으로 훨씬 간편하게 푼 것을 보고 다음에 다시 풀 때 적용해보자는 생각을 하였다.x와 y좌표가 최대 100,000까지 가능하지만 nodeinfo는 10,000
외벽 점검주어진 값들의 범위가 크지 않아서 완전 탐색이 적합하다고 판단하였다.weak에서 가장 넓은 간격을 끊어서 시작 지점을 하나로 추렸다. 모두 간격이 같다면 아무 요소를 잡아도 상관없다.위의 기준으로 정렬된 weak 배열을 편의상 오름차순이 되도록 값을 조정하였다
코딩 테스트 공부카카오 인턴십 코테를 볼때는 해당 문제 효율성 테스트를 통과하지 못했다. 당시에는 엄청 어려운 문제인줄 알았는데, 이번에 다시 풀어보니 쉽게 풀 수 있었다!주어진 조건들의 범위가 작아서 일차적으로 완전 탐색을 떠올렸다. 하지만 problems가 최대 1
등산코스 정하기저번 카카오 인턴십 코테 당시에는 시간초과와 런타임 에러가 발생했다. 근데 이번에 다시 풀어보니 무난하게 풀 수 있었다!설명에서는 출발지 -> 산봉우리 -> 출발지로 설명을 했지만, 출발지 -> 산봉우리까지의 intensity만 구하면 된다. 이를 통해
사라지는 발판board의 가로, 세로 길이가 최대 5인 조건을 통해 완전탐색을 사용하면 된다고 판단하였다.A턴과 B턴이 번갈아면서 바뀌는 dfs를 사용하였다. 이때 각자의 턴에서 이기는 경우가 없다면 최대 count 값을 반환하였다. 또한, 각자의 턴에서 이기는 경우가
아기 상어PriorityQueue를 사용한 bfs로 해결하였다.거리가 가까운 물고기가 많다면, 가장 위에 있는 물고기, 그러한 물고기가 여러마리라면, 가장 왼쪽에 있는 물고기를 먹는다. 조건을 만족시키기 위해 PriorityQueue를 사용하였다.현재 상어 위치를 기반
BufferStringtokenize
Scanner를 이용하여 char형 변수를 직접 입력받을 수 없다.char c = stdIn.next().charAt(0);문자열을 입력받은 후 0번 인덱스를 선택하는 방식으로 입력받을 수 있다.str.toCharArray()를 쓴 이유는 해당 자리에 배열이나 리스트
1. Recursive, Tree, Graph(DFS, BFS 기초) 1) 향상된 피보나치 재귀(메모리제이션)