알고리즘
-
[TIL] 스택과 큐IT 지식 2021. 7. 11. 17:49
1. 스택 1) 정의 스택은 자료구조의 일종으로, 마지막에 삽입된 항목만을 제거하고 접근할 수 있다. 이러한 원리를 후입선출(LIFO)이라고 한다. 스택은 속도가 빠르다는 장점이 있다. 스택은 알고리즘이 마지막에 추가된 항목만을 접근해야 하는 후입선출 형태로 자료를 처리해야 하는 경우에만 배열에 대해 사용한다. 스택의 한계는 배열과 딜리 마지막에 추가된 항목 외에는 직접 접근할 수 없다는 것이다. 게다가 초반에 추가된 항모글 접근하기 위해서는 이후에 추가된 항목들을 자료구조로부터 제거해야 한다. 자바스크립트에는 스택 클래스를 정의한 pop과 push라는 메소드가 있다 2) 들여다보기 스택의 마지막에 추가된 항목을 들여다보는 것(peeking)은 마지막에 추가된 항목을 스택 자료구조에서 제거하지 않고 반환..
-
[TIL] 해시 테이블IT 지식 2021. 7. 11. 17:04
1. 해시 테이블의 정의 해시 테이블은 고정된 크기의 자료 구조로 처음에 크기가 정해진다. 해시 테이블을 사용하면 자료를 쉽고 빠르게 저장할 수 있고, 키-값을 기반으로 자료를 얻을 수 있다. 자바스크립트에서 자바스크립트 객체는 해시테이블과 같은 방식으로 키와 해당 키의 연관된 값을 정의하는 방식으로 동작한다. 해시 테이블에는 put(), get() 이리ㅏ는 두 가지 주요 함수가 있다. put()은 자료를 해시 테이블에 저장하는데 사용하고, get()은 해시 테이블로부터 자료를 얻는 데 사용된다. 두 함수 모두 시간 복잡도가 O(1)이다. 간단히 말하자면 해시 테이블은 인덱스가 해싱 함수에 의해 계산되는 배열과 매우 유사하다. 이때 인덱스는 메모리에서 유일한 공간을 식별하기 위한 것이다. 2. 해싱 기법..
-
[TIL] 알고리즘 풀이 - 프로그래머스 '문자열 내 p와 y의 개수문제'IT 지식 2021. 5. 1. 16:31
문제 소개 더보기 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다. 제한사항 문자열 s의 길이 : 50 이하의 자연수 문자열 s는 알파벳으로만 이루어져 있습니다. 문제 풀이 더보기 function solution(s){ var count_p = 0; //p의 개수 카운트 var count_y = 0; // y의 개수 카운트 for(var ..
-
[TIL]Day 21. for/in 을 사용하면 안되는 이유!!!(in JS)IT 지식 2020. 10. 5. 13:12
오늘은 wecode에서 code kata를 하고 나서 알게 된 for/in 문의 사용법에 대해 포스팅하도록 하겠습니다. 1. 문제의 시작 ----------------------------------------------------------------------------------------------------------------------------------- 더보기 * 문제 twoSum함수에 숫자배열과 '특정 수'를 인자로 넘기면, 더해서 '특정 수'가 나오는 index를 배열에 담아 return해 주세요. nums: 숫자 배열 target: 두 수를 더해서 나올 수 있는 합계 return: 두 수의 index를 가진 숫자 배열 예를 들어, nums은 [4, 9, 11, 14] target은..