arr배열을 오름차순으로 정렬한다.값이 작은 숫자 부터 rootNode일때 가질 수 있는 트리의 경우의 수를 계산합니다.그리고 부모노드의 값은 2개의 자식 노드의 곱한 값이 되어야 하므로2 ~ 부모노드의 루트값의 범위로 루프문을 만들어서 가능한 자식 서브트리의 경우의
일단 숫자를 움직일 때 숫자를 작게 하는 방법 밖에 없다는 사실을 잊으면 안된다.각 인덱스의 값이 근접한 두 값보다 작게 만드는 방식으로 알고리즘을 구현하였습니다.홀수번째 index가 근접하는 숫자보다 작은 경우짝수번째 index가 근접하는 숫자보다 작은 경우두가지 경
문제 문제 풀이 예외 1번 nums의 길이가 1이고 k가 1이면 무조건 빈 pile 밖에 못만든다. 예외 2번 k가 0이면 무조건 첫번째 인자를 리턴해야한다. 예외 3번 k가 nums의 길이보다 1크면 무조건 배열 중 가장 큰 수를 맨 앞에 위치하게 할 수 있다
내 풀이 방법은 매우 직관적이다. priority heap을 이용해서 숫자를 관리 할 것이고 배열의 가장 끝에서 시작할 것이며priority heap에서 가장 작은 값보다 배열의 값이 클때 스왑이 이루어져야 한다.priority heap에서 스왑될 숫자를 고르는 방법은
0과 1로 이루어진 string을 3분할 했을때 각 각 substring의 합이 서로 같을 수 있는 substring 조합의 갯수를 구하는 문제 입니다.일단 1의 갯수를 구해서 3으로 나누어 떨어지지 않으면 합이 같은 3개의 substring으로 나눌수가 없다.그리고
전제가지고 있는 숫자로 m까지의 숫자를 만들 수 있다고 한다면 2 \* m + 1 까지의 숫자를 만들때 필요한 숫자는 하나이다.그리고 m까지의 숫자를 만들 수 있지만 m보다 작은 k라는 숫자를 하나 더 가지게 되면 m + k까지의 숫자를 만들 수 있게 된다. 해설tot
110이라는 숫자를 몇개 나 만들 수 있는지에 대해 체크 해야한다.사전적 순서를 빠르게 하기 위해서는 몇 가지 생각해야 할 필요가 있다.110보다 사전적으로 앞으로 와야하는 조합은 10과 0이다. 그리고 110이 있으면 1을 모두 뒤로 밀어 버릴 수 있다.그래서 10과
이 글을 보시는 분들은 문제는 다 아실거라 생각하고 바로 문제 해설로 들어 가겠습니다.일단 BFS를 이용하여 문제를 해결하였습니다. que에 출발지를 모두 넣어 놓습니다.BFS를 통해 갈 수 있는 모든 길을 탐색합니다. 길을 탐색하는 조건은 이전에 저장된 길 보다 지금
일단 문제 해석을 하자면 어떤 idx를 기준으로 그 k개의 worker그룹을 만드는데 그룹에 속할 수 있는 기준은 어떤 idx를 기준으로 어떤 조건을 만족해야 한다.조건은 인덱스가 idx가 아닌 인덱스 j가 wage\[idx] / quality\[idx] \* qu
개략적으로 얘기하면 배열에서 가장 처음 만족하는 배열의 시작 index와 끝index를 찾습니다.그리고 while을 통해 또 다른 배열의 조합이 있을때까지 찾습니다.찾는 방법은 left위치의 문자와 right위치의 문자가 같을때 까지 right를 늘립니다.그리고 원하는
문제는 Greedy하게 풀어야 했으며 이 메커니즘에 대해 이해 해야햇습니다.모든 씨앗은 그 전에 심은 씨앗들의 plantTime을 다 더한 것보다 day가 커야 심을 수 있다.그렇다면 어떻게 해야 가장 optimal하게 심을 수 있을까?가장 중요한 것이 씨앗이 자라는
임의의 노드를 루트로 지정한 뒤트리를 타고 내려가면서 각 노드의 서브트리 크기를 저장합니다.트리를 타고 내려가면서 루트노드의 DistanceAcc를 구합니다.구하는 로직은각 노드에서 DistanceAcc와 size를 구하고상위 노드는 하위 노드의 distanceAcc
일단 숫자를 가지고 이진수로 만든다.그 이진수를 가지고 가능한 포화 이진트리를 만든다포화 이진트리가 가능한지 확인한다.숫자를 이진수로 만드는 과정은 흔히 사용하는 방법을 이용해서 만들었습니다. 숫자를 계속해서 2로 나누면서 나머지를 저장하고 그 나머지들을 뒤집으면 우리
사실 크게 어렵지 않은 문제라 생각했지만 정답에 가까운 답을 도출하는데는 꽤 많은 시간이 걸렸고 어려운 문제는 아니지만 나의 풀이법을 소개하고 싶어 포스팅하게 되었습니다.처음에는 모든 택배상자를 배달하고 픽업하는 한번의 사이클을 매번 시행하는 방식으로 접근하였습니다.