JavaScript/JS_Algorithm 28

[인프런 - JS 알고리즘 문제풀이] stack판단5

괄호가 들어오는 문제는 대부분 stack으로 푸는 문제라고 보면 된다. 여는 괄호를 만나면 무조건 stack에다가 push를 한다. )앞에 부분이 (이면 쏘고있는 부분이라고 보면 되고 )이면 막대기의 끝이라고 보면 된다. )괄호를 만나면 stack에서 )를 무조건 하나 빼야한다. 그리고 answer에다가 잘린 갯수(stack에 있는 ( 개수)를 answer에다가 계속해서 누적한다. 아래 코드를 보자. 참고: https://www.inflearn.com/course/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4/dashboa..

[인프런 - JS 알고리즘 문제풀이] stack판단4

연산식에서 숫자이면 참으로 판단하고 숫자화 시켜준다 연산자이면 stack에서 두개를 꺼내준다. 각 연산자에 맞게 숫자 두개를 처리해주고 스택에서 남은 숫자를 꺼내준다. 아래 코드를 보자. 참고: https://www.inflearn.com/course/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4/dashboard 자바스크립트 알고리즘 문제풀이(코딩테스트 대비) - 인프런 | 강의 자바스크립트(JavaScript)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 재미있게 풀 수 있는 기초 단계 문제부터 고급 알고리즘까지 단..

[인프런 - JS 알고리즘 문제풀이] stack판단3

바구니에 인형을 담고 같은 것이 두개가 담겨지면 터지는 구조이다. 총 몇개 터지는지 출력하는 코드를 작성해보자. 아래 코드를 보자. 참고: https://www.inflearn.com/course/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4/dashboard 자바스크립트 알고리즘 문제풀이(코딩테스트 대비) - 인프런 | 강의 자바스크립트(JavaScript)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 재미있게 풀 수 있는 기초 단계 문제부터 고급 알고리즘까지 단계별로 차근차근 배우도록 설계된 강좌입니다., 개발 ww..

[인프런 - JS 알고리즘 문제풀이] stack판단2

세로로 세워진 배열안에 ( 괄호안에 알파벳이 들어가 있고 문자열이 있다하자. )가 들어가게 된다면 (와 문자열이 같이 pop되는 구상을 하면서 코드를 작성하자. 아래코드를 보자. 참고: https://www.inflearn.com/course/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4/dashboard 자바스크립트 알고리즘 문제풀이(코딩테스트 대비) - 인프런 | 강의 자바스크립트(JavaScript)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 재미있게 풀 수 있는 기초 단계 문제부터 고급 알고리즘까지 단계별로 차..

[인프런 - JS 알고리즘 문제풀이] stack판단

Stack이란 무엇이냐 data를 일시적으로 저장할려고 사용하는 data structure data 입출력 순서는 후입 선출(Last In First Out LIFO)이다. data를 넣는 작업을 push / 꺼내는 작업을 pop이라 한다. 즉, stack은 배열을 세로로 세워서 생각하면 편리하다. linked list이고 뒤로 넣고 뺼 수 있는 것이다.(하지만 앞으로는 넣고 빼지 못한다.) JavaScript에서는 array에서 shift unshift없이 push pop만 있다고 생각하면 된다.(push와 pop은 stack에서 나온 것이다.) 다른 한 가지의 메소드는 stackTop으로 스택의 마지막 요소를 알려주는 것이다. 스택의 마지막 요소를 top이라고 부른다. 프로그래밍상에서 스택이 자주 등..

[인프런 - JS 알고리즘 문제풀이] 공통인자 구해보기

먼저 arr1과 arr2를 오름차순 시켜준 다음에 arr1의 p1과 arr2의 p2를 비교한다. arr1의 p1이 p2보다 작으면 p1 증가시켜주고 값이 같으면 answer에 push 해준다. 같았을 때는 p1도 증가시키고 p2도 같이 증가시켜준다. 반복해주고 p1과정이 끝나면(혹은 p2) 탐색이 끝났으므로 answer를 리턴해준다. 아래코드를 보자. function solution(arr1, arr2) { let answer = []; arr1.sort((a, b) => a - b); arr2.sort((a, b) => a - b); let p1 = p2 = 0; while (p1 < arr1.length && p2 < arr2.length) { if (arr1[p1] === arr2[p2]) { an..

[인프런 - JS 알고리즘 문제풀이] Array 문제

Two Pointers Algorithm list의 순차적으로 접근해야 할 때 두 개의 점의 위치를 기록하면서 처리하는 Algorithm 정렬되어있는 두 개의 list의 합집합에도 사용된다. merge sort의 conquer 영역에서 기초가 된다. 즉 정렬된 list를 두 개의 포인터를 이용해서 순차적으로 접근하면서 두 포인터 구간의 값이 target 값과 같을 때까지 포인터를 조작하는 것이다. 두 개의 포인터를 활용하면 list를 한 번만 탐색하므로 list가 이미 정렬되어져 있는 경우 O(n), 정렬되어 있지 않아도 O(nlogn) 정도 time complexity로 문제를 해결 할 수 있다. 그러므로 주어진 입력 데이터가 클 경우에는 투 포인터를 활용할 수 있는지를 꼭 생각해보자. arr1의 p1..

[인프런 - JS 알고리즘 문제풀이]아나그램 갯수문제(Hashing과 연관)

Hash 어떤 크기가 정해진 키를(데이터) 고정된 크기의 값(value)로 변화시켜서 저장하는 것 키에 대한 hash 값을 사용해서 값 저장하고 key value 갯수에 따라서 동적으로 크기가 증가하는 associate array hash value를 구하는 과정을 hasing이라함. 이 Algorithm을 hash function이라고 함. hash value 자체를 index로 사용해서 average time complexity가 O(1)로 굉장히 빠름 Hash function 원래 값이나 키를 색인하는데 사용되고, 그 값이 관련된 데이터가 검색될 때마다 사용된다. 데이터의 효율적 관리를 목적. 임의의 길이 데이터를 고정된 길이의 데이터로 매핑하는 함수. 계산이 단순하고 중복없이 해시값을 만들어 줄 ..