본문 바로가기

알고리즘

(16)
Count Triplets javascript로 풀기 /* You are given an array and you need to find number of tripets of indices (i,j,k) such that the elements at those indices are in geometric progression for a given common ratio r and i
Sherlock and Anagrams javascript로 풀기 /* 아나그램 알고리즘의 핵심은 어찌보면 단순하다. 문자열에서 나올 수 있는 모든 문자열의 경우의 수 abba의 경우 1글자로 a b b a 2글자로 ab bb ba 3글자로 abb bba 이를 구하기 위해 다중반복문을 쓸 수 있다. 반복내용은 아래와 같다. 0 01 012 1 12 123 2 23 3 for(var i=0;i
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 ..
New Year Chaos Javascript로 풀기 /* 지금은 설날이고 모든 사람들이 원더랜드 롤러코스터를 탄다. 몇명의 사람들이 대기하고 있으며 각각의 사람들이 그들의 초기 위치를 설명하는 스티커가 있는 옷을 입고 있다. 초기 위치는 1에서부터 n으로 앞에서 뒤까지 정해진다. 어떤 사람은 앞사람에게 직접 뇌물을 줘서 위치를 변경 할 수 있다. 만약 두 사람이 위치를 변경하면 여전히 그들은 이전에 그들의 위치 스티커를 입는다. 한 사람이 최대 다른 두사람과 위치를 변경할 수 있다. 예를들어 n이 8이고 5번이 4번에게 뇌물을 주면 대기줄은 1,2,3,5,4,6,7,8로 보인다. 매력적인 혼란스러운 대기줄을 현재 상태로 만들기 위해 필요한 최소 뇌물을 구하라 이전에 뇌물받거나 준 사람이 또 받을 수 있다. 앞에서부터 계산을 조지면 될 것 같다. shift..
Extra Long Factorials javascript 번역 및 풀이 원문 및 번역 The factorial of the integer n, written n!, is defined as: 정수 n의 팩토리얼은 n!로 쓰며, 다음과 같이 정의한다. n! = n * (n-1) * (n-2) * … 3 * 2 * 1 Calculate and print the factorial of a given integer. 주어진 정수의 팩토리얼을 계산하여 출력한다. For example, if , we calculate and get . 예를들어, n=30이면, 30*29*…2*1 을 계산하고 결과로265252859812191058636308480000000 를 얻을 수 있다. Function Description Complete the extraLongFactorials functio..
Climbing the Leaderboard javascript 번역 및 풀이 원문 Alice is playing an arcade game and wants to climb to the top of the leaderboard and wants to track her ranking. The game uses Dense Ranking, so its leaderboard works like this: The player with the highest score is ranked number 1 on the leaderboard. Players who have equal scores receive the same ranking number, and the next player(s) receive the immediately following ranking number. For exam..
Forming a Magic Square hackerrank 자바스크립트 번역 및 풀이 원문 We define a magic square to be an n x n matrix of distinct positive integers from 1 to n^2 where the sum of any row, column, or diagonal of length is always equal to the same number: the magic constant. You will be given a 3 x 3 matrix s of integers in the inclusive range [1,9]. We can convert any digit a to any other digit b in the range [1,9] at cost of [a-b]. Given s, convert it into a mag..