Hackerrank Angry Professor
Angry Professor 문제링크 설명 문제 내용이 재미있어서 풀어본 문제이다. 배열 a 의 요소를 순회하면서 요소의 크기가 0 이하인 요소의 갯수를 파악하여 k 보다 크면 NO 를 k값 미만이면 YES를 리턴한다. 코드 function angryProfessor(k, a) { let joinedStudent = 0; for...
Angry Professor 문제링크 설명 문제 내용이 재미있어서 풀어본 문제이다. 배열 a 의 요소를 순회하면서 요소의 크기가 0 이하인 요소의 갯수를 파악하여 k 보다 크면 NO 를 k값 미만이면 YES를 리턴한다. 코드 function angryProfessor(k, a) { let joinedStudent = 0; for...
Two Strings 문제링크 설명 주어진 두 문자열을 비교하여 서로 일치하는 단일 문자 가 있다면 “YES”, 그렇지 않다면 “NO”를 리턴하면 되는 문제이다. 푸는 방법은 여러 방법이 있지만 나는 js의 Set을 사용하여 교집합을 구하는것으로 풀었다. 두 문자열의 집합을 구하여 교집합이 하나라도 있다면 “YES”를 리턴하고 그렇지 않다면 “N...
Queue using Two Stacks 문제 링크 설명 위 문제는 2개의 stack을 이용하여 큐를 구현하는 문제이다. stack의 특성상 요소를 모두 집어넣고 빼면 순서가 반대로 뒤집힌다는 특성을 이용하여 1번 stack의 모든 요소를 2번stack에 집어넣고 queue의 삭제 혹은 맨 앞 요소 조회(peek)연산후 다시 2번 -> 1번 ...
Minimum Swaps 2 문제링크 설명 배열에 있는 요소들을 최소한의 swap 횟수로 오름차순 정렬하는 문제이다. 최초에는 퀵정렬, 삽입정렬을 고려하였으나 두 방법 모두 비교 횟수를 최소화 하는데에는 부적절한 방법이었다. 배열의 요소가 가지고 있는 특징(이번 문제는 중복없는 숫자)을 고려하지 않고 일반적인 방법으로 접근하였기에 시간이 더 ...
들어가며.. javascript의 array는 다른 정적 언어에 비해 재미있는 특성을 가졌다. 보통 배열이라고 하면 보통 정해진 길이를 가지고 있고 동일한 형식의 요소의 연속적인 모음을 의미한다. 하지만 javascript에서는 좀 다르다. 길이도 자유롭게 변경되고 요소의 형식은 구별되지 않는다. 이런점에서 javascript의 array만의 특징과...
Array Manipulation 문제 링크 설명 주어진 입력에 따라 일정 범위의 배열에 k 값을 더하면 된다. 하지만 이 문제는 시간 복잡도를 최적화해야하는 문제가 있다. 시간 복잡도가 n 을 초과하면 실패하므로 단순히 코딩만 해서는 통과할 수 없다. 처음에는 문제의 설명을 그대로 따라 코드를 작성하였다. n 크기의 배열 생성 qu...
Left Rotation 문제 링크 설명 배열 요소를 주어진 만큼 왼쪽으로 회전시키면 된다. javascript Array의 내장함수로 쉽게 해결 할 수 있다. 코드 "use strict"; process.stdin.resume(); process.stdin.setEncoding("utf-8"); let inputString = ""; l...
Arrays DS 문제 링크 설명 배열 요소의 순서를 뒤집으면 된다. stack의 성질을 이용하여 주어진 배열의 마지막 요소부터 첫 요소까지 순서대로 stack에 집어넣는다. 코드 function reverseArray(a) { if (Array.isArray(a)) { let reversed = []; let length ...
Hackerrank 2D Array - DS 문제 링크 설명 그렇게 어렵지 않은 문제다. 모래시계 패턴을 찾아 합을 구하고 가장 큰 합을 찾으면 된다. 참고로 result 에는 최소값을 주어야 비교가 가능해진다. 코드 function hourglassSum(arr) { let result = Number.MIN_SAFE_INTEGER; ...
참고사항 이 글은 Implement All Permutations of a Set in JavaScript-Michael Mitrakos 를 참고하고 번역한 글입니다. (주의! 구글 번역기를 주로 사용하였으며 의역, 직역, 저의 주관이 함께 섞여있습니다. 정확한 의미는 링크를 타고 원문을 참고하여주시면 감사하겠습니다.) 들어가며 순열 관련 글을...