목록전체 글 (171)
2020.코딩일지
LPS 문제 문자열을 입력받아 다음의 조건을 만족하는 LPS*를 찾아 그 길이를 리턴해야 합니다. LPS: 주어진 문자열의 가장 긴 접두어이자 접미어(Longest Prefix which is also Suffix) non-overlapping: 접두어와 접미어는 서로 겹치는 부분이 없어야 합니다. 다시 말해, prefix와 suffix는 문자열의 동일한 인덱스에 위치한 문자를 요소로 가지면 안 됩니다. 입력 인자 1 : str string 타입의 임의의 알파벳 소문자 문자열 ( str.length는 60,000 이하 출력 number 타입을 리턴해야 합니다. 주의사항 prefix(접두어)는 문자열의 첫 인덱스부터 시작하는 모든 부분 문자열을 의미합니다. suffix(접미어)는 문자열의 마지막 인덱스부터..
문제 하나의 집합을 의미하는 문자열을 입력받아 각 문자를 가지고 만들 수 있는 모든 부분집합을 리턴해야 합니다. 입력 인자 1 : str string 타입의 공백이 없는 알파벳 소문자 문자열 출력 배열(arr)을 리턴해야 합니다. arr[i]는 각 부분집합의 원소로 구성된 문자열 주의사항 arr[i]는 각 부분집합을 구성하는 원소를 연결한 문자열입니다. arr[i]는 알파벳 순서로 정렬되어야 합니다. 집합은 중복된 원소를 허용하지 않습니다. 부분집합은 빈 문자열을 포함합니다. arr은 사전식 순서(lexical order)로 정렬되어야 합니다. 입출력 예시 let output1 = powerSet('abc'); console.log(output1); // ['', 'a', 'ab', 'abc', 'ac'..
코드스테이츠 블록체인 부트캠프 6기 💃 블록체인 트릴레마란 무엇인가요? 블록체인 기술의 3대 요소인 확장성(Scalability), 보안성(Security), 탈중앙성(Decentralization) 중 하나는 희생해야 한다는 문제 💃 블록체인의 확장성, 보안성, 탈중앙성에 대해 설명해보세요. 확장성: 높은 트랜잭션 처리량과 미래의 증가량을 잘 견딜 수 있는 것 더 많은 거래량을 수용할 수 있는 블록체인의 능력 보안성: 데이터나 프로그램이 보호되어 있고, 권한이 없는 사용자나 악의적인 사용자의 접근을 막는 것 블록체인에 저장된 데이터를 다른 공격으로부터 보호하거나 이중 지출에 대한 블록체인의 방어 기능 탈중앙성: 네트워크가 중앙집권화된 방식으로 운영이 되는 것이 아닌, 소규모 노드 간 자율적으로 운영되는..
코드스테이츠 블록체인 부트캠프 6기 [ Chapter1 - 암호화폐 ] 암호화폐란 무엇인가요? 암호화(crypto) + 화폐(currency)의 합성어로, 암호화 기술을 이용한 가상화폐입니다. 기존의 화폐와는 다르게, 중앙은행이 존재하지 않고,(탈중앙화) 포인트도토리와다르다ㅋㅋ 네트워크에 참여하는 모든 노드가 데이터베이스의 사본을 가지고 모두가 하나의 서버처럼 효율적으로 기능합니다. * 암호화폐는 분산 장부에서 비대칭키 암호화를 통해 안전하게 전송하고, 해시 함수를 이용해 쉽게 소유권을 증명해 낼 수 있는 디지털 자산이다 * 암호화폐 네트워크의 탈중앙성은 상당한 수준의 차단과 검열 저항성을 가능하게 한다. 검열저항성이란, “거래 내역을 감시하지 못 한다는 게 아니라 감시하더라도 거래를 막지 못 한다" *..
문제 두 수를 입력받아 거듭제곱을 리턴해야 합니다. 입력 인자 1: base number 타입의 자연수 (base >= 2) 인자 2: exponent number 타입의 정수 (exponent >= 0) 출력 number 타입을 리턴해야 합니다. 실제 계산 결과를 94,906,249로 나눈 나머지를 리턴해야 합니다. 주의사항 Math.pow, 거듭제곱 연산자 사용은 금지됩니다. 시간복잡도 O(logN)을 만족해야 합니다. 나머지를 구하는 이유는 계산 결과가 컴퓨터로 나타낼 수 있는 수의 범위를 넘을 수 있기 때문입니다. 하지만 모든 연산이 끝난 뒤에 그 결과를 94,906,249로 나누려고 해서는 안 됩니다. 연산 중간에도 이 범위를 넘을 수 있기 때문에, 연산을 할 때마다 나머지를 구하고 그 결과에 ..
문제 정수를 요소로 갖는 배열을 입력받아 3개의 요소를 곱해 나올 수 있는 최대값을 리턴해야 합니다. 입력 인자 1 : arr number 타입을 요소로 갖는 임의의 배열 출력 number 타입을 리턴해야 합니다. 주의사항 입력으로 주어진 배열은 중첩되지 않은 1차원 배열입니다. 배열의 요소는 음수와 0을 포함하는 정수입니다. 배열의 길이는 3 이상입니다. 입출력예시 더보기 입출력예시 let output = largestProductOfThree([2, 1, 3, 7]); console.log(output); // --> 42 (= 2 * 3 * 7) output = largestProductOfThree([-1, 2, -5, 7]); console.log(output); // --> 35 (= -1 *..
코드스테이츠 블록체인 부트캠프 6기 블록체인은, P2P네트워크를 통해 관리되는 분산 데이터베이스(Distributed database)의 한 종류. =네트워크에 연결된 여러 컴퓨터에 저장 및 보관 💃분산데이터베이스란? 분산데이터베이스 관리 시스템(DBMS, Database Management System)으로 여러 CPU에 연결된 저장장치들을 제어하는 형태의 데이터베이스 정의: 물리적으로는 여러 위치에 분산 저장하고 흩어져 있는 시스템이지만, 논리적으로는 하나인 것 처럼 활용한다는 것이 핵심 개념 분산된 저장소(노드)들이 네트워크를 통해 연결되어 작동하는 하나의 데이터베이스 관리 시스템(DBMS)으로 투명성 확보가 가장 중요! ==> 재해복구,백업, 성능상의 이점 등장배경: ‘보안'과 ‘처리 속도'라는 ..
O(1) 상수 시간 문제를 해결하는데 오직 한 단계만 처리함. O(log n) 로그 시간 문제를 해결하는데 필요한 단계들이 연산마다 특정 요인에 의해 줄어듬. O(n) 직선적 시간 문제를 해결하기 위한 단계의 수와 입력값 n이 1:1 관계를 가짐. O(n log n) 문제를 해결하기 위한 단계의 수가 N*(log2N) 번만큼의 수행시간을 가진다. (선형로그형) O(n^2) 2차 시간 문제를 해결하기 위한 단계의 수는 입력값 n의 제곱. O(C^n) 지수 시간 문제를 해결하기 위한 단계의 수는 주어진 상수값 C 의 n 제곱. https://blog.chulgil.me/algorithm/ 알고리즘의 시간 복잡도와 Big-O 쉽게 이해하기 삼성역에서 택시를 타고 강남역으로 향했는데 30분 걸렸다. 구글에서 알..
코드스테이츠 블록체인 부트캠프 6기 2008년 10월 사토시 나카모토가 올린 "Bitcoin: A Peer-to-Peer Electronic Cash System"논문 비트코인깃헙 블록체인이란, 다양한 기술의 집합체. P2P네트워크를 통해서 관리되는 분산 데이터베이스의 한 형태.(여러컴에 저장한는 보관기술) 무엇을 공개하는가? 무엇을 허용하는가? (읽기,쓰기) 퍼블릭, 프라이빗, 컨소시움 블록체인이 차이점 / 블록체인 네트워크 유형 구분 퍼블릭블록체인 Public 프라이빗 블록체인 Private 컨소시엄 // 하이브리드(혼합형)의 한형태. Consortium 하이퍼레져(Hyperledger): 리눅스재단 하이퍼레져 패브릭:리눅스+IBM 공개범위 모두공개 폐쇄형 중앙화 중앙관리자의 승인받 관리자 모든 거래..
iTerm2 -> Preferences(⌘,) -> keys -> 하단의 [+]눌러서 추가 'click to set'클릭하고 원하는 키를 누르면 입력이된다 한줄 삭제 ⌘ + backspace action: send hex code 0x15 단어 삭제 ⌥ + backspace action: send hex code 0x17 한줄 이동(맨앞으로 커서이동) ⌘ + ← action: send escape sepuence OH 한줄 이동(맨뒤로 커서이동) ⌘ + → action: send escape sequence OF 단어 이동(단어 앞으로 커서이동) ⌥ + ← global로 설정되어있는 키가 있기 때문에 Profile -> keys -> key Mappings -> [⌥ ←]더블클릭 action: send ..