목록전체 글 (169)
seunghyun Note
단일 연결 리스트 이중 연결 리스트 스택 & 큐 (배열로 하는 방법은 숙지했음! linked list로 구현해 보기) 이진 검색 트리 트리 순회 이진 힙 해시 테이블 (사용해 봤지만 복습) 그래프, 그래프 순회 다익스트라 알고리즘 동적 프로그래밍 스택은 후입선출 원칙에 따라 데이터를 추가하고 제거하는 데이터 구조이다. 배열을 사용할 때 js 내에 stack.pop(), stack.push(value) ,stack.unshift(value) 등이 있지만 이것을 기계적으로 사용하다보면 문제를 바라볼 때 이해가 안될때가 많다. 그렇기 때문에 linked list를 통해 원리를 이해하는 것이 중요하다. Stack class setting Node 클래스는 연결리스트이기 때문에 똑같다. stack은 연결리스트에서..
링크 : https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 문제 풀이 1. 입력 숫자(n) 만큼 배열 순회 for (let i = 0; i < n; i++) { sum += isGroup(arr[i]); } 2.isGroup 함수 function isGroup(str) { let compressed = ""; for (let i = 0; i < str.length; i++) { let currentChar = st..
링크 : https://www.acmicpc.net/problem/28279 28279번: 덱 2 첫째 줄에 명령의 수 N이 주어진다. (1 ≤ N ≤ 1,000,000) 둘째 줄부터 N개 줄에 명령이 하나씩 주어진다. 출력을 요구하는 명령은 하나 이상 주어진다. www.acmicpc.net 문제 풀이 스택, 큐 공부를 하면서 linked list로 구현하는 것이 재미있어서 풀었지만... 런타임 에러, 시간초과 반복이었다. 런타임 에러와 틀렸습니다 는 말 그대로 코드를 틀린 상황이었고 시간 초과가 문제였다. 또한 JS로 풀었던 자료가 별로 없어서 힘들었다.. Linked List로 풀기 (실패 - 시간 초과) const fs = require("fs"); //const input = fs.readFile..
단일 연결 리스트 이중 연결 리스트 스택 & 큐 (배열로 하는 방법은 숙지했음! linked list로 구현해 보기) 이진 검색 트리 트리 순회 이진 힙 해시 테이블 (사용해 봤지만 복습) 그래프, 그래프 순회 다익스트라 알고리즘 동적 프로그래밍 이중 연결리스트를 왜 사용하는지 몰랐는데.. 최근에 풀었던 덱 문제를 풀면서 시간복잡도가 커짐을 느끼고 이중 연결리스트를 사용해서 문제를 해결했던 기억이 있다. 이중 연결리스트는 일반 연결리스트와 달리 prev, next가 생긴 것이다. 조금 더 복잡해졌지만 그만큼 효율이 좋은 거 같다. Class Setting 기본 세팅은 Linked List와 비슷하지만 추가되는 것이 있다. class Node{ constructor(val){ this.val = val; ..
create view를 생성할 때 오류가 계속 생겼다. (mac OS는 참 오류가 많다고 생각했지만 이것은 그냥 나의 oracle setting 문제였다.) 어떻게 해야 할지 찾아보다가 초기에 grant 세팅을 했을 때 추가하지 않았던 구문이 있었다. 1. sql에 접속을 한다. docker exec -it oracle sqlplus 2. 관리자 모드 접속 sqlplus / as sysdba :: 관리자 모드 접속 3. view 생성 추가 (session, table, procedure은 이미 있다면 pass) grant create view, create session, create table, create procedure to hr; 그리고 다시 oracle에 접속 후 view 객체를 생성하면.. ..
링크 : https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 문제 풀이 링크드리스트 공부를 하다가 이 문제를 보니 또 링크드리스트로 풀어야 하나..? 생각이 들었지만 아니었다. 배열을 사용해서 풀 수도 있다. cnt를 넣어주고 cnt가 같을 때 ans에 Push, 아니면 arr에 push 해서 저장할 곳을 두 곳에 둔다. const filePath = process.platform === "linux" ? "/dev/stdin" : "예제.txt"; let [N, K] = require("fs").readFileSync(filePa..