Array Manipulation Javascript로 풀기 + 해설
/* n과 m이 주어진다. n은 배열의 길이이며, m은 추가할 횟수이다. 배열 queries는 m/3개의 a,b,x를 가진다. a부터 b까지 index에 x를 더한다. 위 작업을 수행한 뒤 가장 큰 값을 리턴하는 함수이다. 당장 무슨 아이디어가 떠오르지 않는다. 거친 방식을 이용해서 문제를 풀어본다. 예를들어 var n = 10; var queries = [[1,5,3],[4,8,7],[6,9,1]]; 일때 초기값 0 0 0 0 0 0 0 0 0 0 1 5 3 -> 3 3 3 3 3 0 0 0 0 0 4 8 7 -> 3 3 3 10 10 7 7 0 0 0 6 9 1 -> 3 3 3 10 10 8 8 1 1 0 이런식으로 쿼리를 돌면서 배열에 다 넣어주는 것이다. 시간복잡도는 n^2 당연하지만 시간복잡도 ..
Minimum Swaps 2 자바스크립트로 풀기
/* 당신에게 무작위 숫자가 이어져있는 중복이 없는 배열(1,2,3...n) 이 주어지며 당신은 2개의 원소를 스왑할 수 있다. 당신은 최소로 스왑하며 배열을 오름차순으로 정렬해야한다. 0부터 돌면서 현재 위치의 값이 최소값인지 아닌지 확인 최소값이면 푸시 아니면 최소값 위치 찾아서 현재랑 스왑 후 푸시, 카운트 ... 이용 indexOf로 인해 속도가 느린듯함 최소값을 min함수로 찾음, indexOf로 min함수 위치 찾음 -> 개손해 --> 인줄 알았는데 min 함수 자체가 느려빠져서 해결이 안되었다. ---> 내가 영문 해석을 제대로 못했다. 배열은 무조건 1~n까지 랜덤으로 섞여있기 때문에 min을 쓸 필요가 없다. */ var arr = [7, 1, 3, 2, 4, 5, 6] function ..