IT 공부/알고리즘 (컴퓨팅 사고력 연습)12 그래프 알고리즘 구현과 간단한 순회 알고리즘 (javascript) class Graph { constructor() { this.adjacencyList = {}; }; /** * @param {string} vertex */ addVertex(vertex) { if ( this.hasThisVertex(vertex) ) return; this.adjacencyList[vertex] = []; }; removeVertex(vertex) { if (this.hasThisVertex(vertex)) { // 1) vertex 리스트 삭제 delete this.adjacencyList[vertex]; // 2) 이 vertext에 연결하고 있는 노드들의 리스트에서 원소 삭제 for (let key in this.adjacencyList) this.removeEdge(key,.. 2023. 10. 31. RSA 암호 알고리즘과 정보이론 1. 기초적인 암호화 방법 암호화란 전달하고 싶은 평문을 다른 기호로 변환하는 등의 다양한 조치를 통해 평문의 내용을 숨기는 것을 말한다. 이 과정을 거꾸로 하면 복호화다. 직관적이며 기초적인 암호화 방법에는 전치나 매핑을 사용하는 방법이 있다. 전치란 문자 기호들의 재배열을 말한다. 매핑은 한 기호를 다른 기호로 바꾸는 것을 말한다. 어린 시절 누구나 암호를 만들며 놀아본 기억이 있을 것이다. 나 또한 초등학교 시절, 한글의 원리를 그대로 사용하는 대신 새로운 문자 기호를 만들어 암호를 만든 기억이 있었다. 어떤 친구는 글자만 재배열해 암호를 만들었다. 우리는 암호화의 원리를 몰랐지만 누구나 알 수 있는 직관적인 방법을 이미 알고 있었던 것이다. (물론 모두 복호화에는 실패했다..) 2. 정보 이론에 .. 2023. 10. 29. 하노이 탑 재귀 문제는 엉뚱하게 해결할 수 있으니 주의해야 한다. 1. 하노이의 탑 하노이의 탑은 알고리즘 과목에서 "재귀"를 공부할 때 단골로 나오는 예제 중 하나다. 너무 자주 나와서 모르는 개발자가 없는 것 같다. 그래서인지, 문제는 사실 꽤 어려운 편에 속하는 데도 불구하고 문제 난이도가 최하로 분류되곤 한다. 문제는 매우 간단하다. 왼쪽의 원판 N개를 3번째 막대기로 하나씩 옮기면 된다. 이때 각 원판은 자신보다 무거운 것이 위에 있으면 안 된다. 하노이의 탑 알고리즘은 구글링을 해서 누구나 쉽게 알 수 있으니, 이 글에서는 내가 이 문제를 풀면서 저질렀던 실수를 작성하고 이에 대해 피드백(반성)을 하려고 한다. 2. 알고리즘은 풀기만 하면 안 된다. 알고리즘 문제들을 가지고 IT기업에서 면접을 보는 이유는 그것을 풀 수 있는가의 여부가 아니라, 그것을 어떻게.. 2023. 10. 26. 이전 1 2 다음