프로그래머스 시저 암호 [JS]
·
알고리즘(Algorithm)
charCodeAt 과 fromCharCode + helper 함수를 사용한 코드 접근 방식 [!] : 대문자는 대문자끼리 소문자는 소문자끼리 변환이 되어야함 function solution(s, n) { let asciiCode=[] let res; for(let i=0;iString.fromCharCode(i)).join('') return res } const checkAsciiCode=(asciiCode,n)=>{ let chaged=asciiCode.map((i)=>{ let plus=i+n if(i90){ i=64 i+=plus-90 } else if(i>96 && i 122){ i=96 i+=plus-122 } else if(i===32){ i=32 } else{ i+=n } return i..
JavaScipt 배열에서 중복 개수 구하기
·
JavaScript
ForEach 사용하기 arr.forEach((x) => { result[x] = (result[x] || 0)+1; }); 풀어쓴 것 if(result[x]){ result[x]+=1 } else{ result[x]=1 } Object로 만들기 function findSingle(arr){ return arr.reduce((pv, cv)=>{ pv[cv] = (pv[cv] || 0) + 1; return pv; }, {});
JS replace
·
JavaScript
var newStr = str.replace(regexp|substr, newSubstr|function) 특수 교체 $$ "$" 기호를 삽입합니다. $& 매치된 문자열을 삽입합니다. $` 매치된 문자열 앞쪽까지의 문자열을 삽입합니다. $' 매치된 문자열 이후의 문자열을 삽입합니다. $n *n*이 1이상 99이하의 정수라면, 첫번째 매개변수로 넘겨진 RegExp객체에서 소괄호로 묶인 *n*번째의 부분 표현식으로 매치된 문자열을 삽입합니다. 매개변수가 function 일때 이 경우, 함수는 정규표현식 매치가 수행된 후 호출될 것이고, 함수의 반환값은 교체될 문자열이 된다. 만약 정규표현식의 플래그로 글로벌(g)이 오는 경우, 함수는 매치될 때마다 계속 호출됨. function replacer(match, ..
unsigned int
·
알고리즘(Algorithm)
이걸 다루는 문제는 처음이여서 정리 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Unsigned_right_shift Unsigned right shift (>>>) - JavaScript | MDN The unsigned right shift operator (>>>) (zero-fill right shift) evaluates the left-hand operand as an unsigned number, and shifts the binary representation of that number by the number of bits, modulo 32, specified by the right-hand op..
그래프 순회
·
알고리즘(Algorithm)
실생활 예시 *Peer to peer networking(P2P) => 개인 대 개인 통신망 (중앙 서버 없이 컴퓨터끼리 서버,클라이언트 역할 -> 서로 연결해서 파일 주고 받기) https://ko.wikipedia.org/wiki/P2P 가장 가까운 것을 찾거나 최단 거리 검색 GPS, 미로 풀기, AI DFS(깊이 우선 탐색) 재귀와 순회의 순서는 다름 -> 그래프를 리스트로 나타냈을 때 재귀는 배열의 앞부분부터 노드가 빠지도록 동작을 하지만 순회는 pop메서드로 인해서 배열의 뒷부분이 먼저 빠진다 1) 재귀 depthFirstRecursive(start){ const result = []; const visited = {}; const adjacencyList = this.adjacencyList..
그래프
·
알고리즘(Algorithm)
그래프(Graphs) 그래프는 유한하고 변할 수 있는 꼭지점이나 노드나 점들의 집합으로 구성된 데이터 구조다 이 점들의 집합이 순서가 있는 경우는 유방향 그래프/ 없으면 무방향 그래프 노드 + 연결(connections) => 그래프 실생활 예시 - SNS - 위치 / 지도 - 추천 시스템 용어 Vertex - 노드(정점) Edge - 간선(노드사이 연결) Weight / Unweighted - 간선에 값을 부여하면 가중 그래프 / 간선에 값이 없으면 비가중 Directed / Undirected -> Instagram에서 팔로우 여부에 따라 게시물을 볼 수 있는지 없는지 (방향) Facebook에서는 모든 사람의 게시물을 볼 수 있음 (무방향) 인접 행렬(adjacency matrix) 간선이 연결되어..
해시 테이블(HASH TABLES)
·
알고리즘(Algorithm)
해시 테이블? key-value 쌍을 저장하는데 사용 순서가 정해져 있지 않다(배열은 0,1,2... 인덱스가 있지만 해시는 아님) 값을 다루는데 매우 빠르다 거의 모든 프로그래밍 언어가 해시 테이블과 같은 데이터 구조를 가지고 있음(속도가 매우 빠르기에) ex) 데이터를 저장하는 배열 0 1 2 3 4 5 6 7 8 9 아래 간단한 예시는 string으로 된 key를 배열에서 사용하는 유효한 인덱스, 즉 작은 숫자로 바꿔주는데 사용되는 해시 함수에 대한 예시를 보여준다 해시 함수에서는 숫자가 나옴, 아래 있는 pink,cyan,orangered를 해시함수에서 나온 번호대로 배열에 저장해준다 pink -> 0 | ["pink", "#ff69b4"] cyan -> 3 | ["cyan","#00ffff"] ..
힙 + 우선 순위 큐
·
알고리즘(Algorithm)
힙 이진 탐색 트리와 비슷 - 왼쪽을 먼저 채워야 한다 (왼쪽 -> 오른쪽) - 우선 순위 큐 같은 데이터 구조를 코딩하는데도 유용하다 - 배열의 인덱스 순서로 부모의 인덱스가 n이라고 했을때 왼쪽 자식은 2n+1 / 오른쪽 자식은 2n+2에 저장된다 [100,19,36,17,3,25,1,2,7] -> 19의 인덱스는 1 / 왼쪽자식은 17 인덱스는 3 /오른쪽 자식은 3 인덱스는 4 반대의 경우(자식에서 부모를 찾는경우) 자식의 인덱스가 n일때 부모의 인덱스는 floor((n-1)/2)이다 - 이진 탐색 트리처럼 큰 값이 오른쪽 / 작은 값이 왼쪽에 배치된다는 약속을 가지고 있지 않다. [모든 참조] https://en.wikipedia.org/wiki/Binary_heap Binary heap - W..
스택+큐
·
알고리즘(Algorithm)
스택 데이터의 모음 -> 압축적인 데이터 구조 LIFO(Last In First Out) 후입 선출 - Undo/Redo 기능 -인터넷 방문 기록 Big O *Insertion - O(1) *Removal - O(1) Searching - O(N) Access - O(N) class Node{ constructor(value){ this.value=value this.next=null } } class Stack{ constructor(){ this.first=null; this.last=null; this.size=0 } push(val){ var newNode=new Node(val) if(!this.first){ this.first=newNode this.last=newNode }else{ var ..
트리
·
알고리즘(Algorithm)
트리 구조가지고 있는 예시들 HTML DOM 네트워크 라우팅 인공지능 추상 구문 트리 컴퓨터 파일 시스템 *추상 구문 트리 -프로그래밍 언어로 작성된 소스코드의 추상 구조 https://ko.wikipedia.org/wiki/%EC%B6%94%EC%83%81_%EA%B5%AC%EB%AC%B8_%ED%8A%B8%EB%A6%AC 추상 구문 트리 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 유클리드 호제법을 사용하여 다음의 코드를 나타낸 추상 구문 트리: while b ≠ 0 if a > b a := a − b else b := b − a return a 컴퓨터 과학에서 추상 구문 트리(abstract sy ko.wikipedia.org *이진 탐색 트리는 정렬되어있는 트리 이진 탐색..