-
[LeetCode] 1. Two Sum
https://leetcode.com/problems/two-sum문제 유형배열, 해쉬 테이블해설주어진 배열에서 숫자값 2개를 더했을 때 target으로 주어진 값과 같다면 인덱스를 아무 순서에 따라 배열로 반환해라. 해답은 반드시 1개가 있으며 배열의 숫자를 반복해서 사용하면 안 된다.풀이3가지 문제 풀이 방법이 있다.부르트 포스모든 경우의 수를 구하는 방법으로 for 문을 2개 사용한다. 시간 복잡도는 2중 for문을 사용했기 때문에 O(N^2)이다.Two-pass Hash Table모든 값을 먼저 Hash Table에 저장을 하고 (타겟 - 해당 인덱스 값)이 있는지 찾는다.시간 복잡도는 Hash Table에 넣는 시간 O(N) + 찾는 시간 O(N) 이다.One-pass Hash Tablemap을..
-
[C#] 컴파일러와 인터프리터
기술 면접 단골 질문 중에 하나죠. 프로그래밍 언어 뭐 써봤나요? 어떤 종류인지 혹시 아시나요? 여러개 종류별로 비교해서 설명해주세요. 프로그래밍 언어는 실행 방식에 따라서 크게 두가지로 분류합니다. 하나는 컴파일러 언어, 다른 하나는 인터프리터 언어 라고 합니다. 컴파일러 언어로 코드를 작성하면 소스 파일을 컴파일해서 바로 컴퓨터가 이해할 수 있는 기계어로 코드를 작성해서 실행 파일로 만듭니다. CPU가 이 실행 파일을 바로 작동시키기 때문에 속도가 빠른 장점이 있는 반면 운영체제가 다르면 호환되지 않을 확률이 높습니다. 우리가 알고 있는 예시로 C++, Visual C++, Object C, Java, C 등이 있습니다. 인터프리터 언어는 컴파일러 언어와 달리 소스 파일을 실행하면 해석 엔진 프로그램..
-
[LeetCode] 153. Find Minimum in Rotated Sorted Array
*알고리즘 스터디에 참여하면서 Blind 75 LeetCode Questions 목록에 있는 문제를 풀이합니다. https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/ Find Minimum in Rotated Sorted Array - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 해설 오름차순으로 정렬된 길이가 n인 배열이 1번에서 n번 회전한다고 가정합니다. 예를 들어 배열 nums =..
-
[LeetCode] 152. Maximum Product Array
*알고리즘 스터디에 참여하면서 Blind 75 LeetCode Questions 목록에 있는 문제를 풀이합니다. https://leetcode.com/problems/maximum-product-subarray/ Maximum Product Subarray - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 해설 숫자 배열이 주어지고, 연속되고 빈 배열이 아닌 부분 배열 중 곱의 값이 가장 큰 것을 찾아 return 한다. 앞서 해설했던 53. Maximum..
-
[번역] 14가지 패턴으로 코딩 인터뷰 완전 정복하기
*이번 포스팅은 "14 Patterns to Ace Any Coding Interview Question" 을 번역한 내용입니다. 코딩 인터뷰를 준비하는 과정은 많은 개발자들이 불안에 떨게 만듭니다. 엄청난 양의 내용을 커버해야하고, 개발자가 실제 업무하는 일과는 무관하게 느껴지기 때문에 스트레스를 가중합니다. 이런 이유 때문에 개발자들 사이에서는 수백가지의 인터뷰 문제들을 LeetCode같은 사이트를 이용해서 공부하는게 일상이 되었습니다. 불안한 개발자들이 인터뷰 전에 가장 많이하는 질문은 보통 내가 연습 문제 충분히 많이 풀었나? 더 해야하나? 입니다. 이런 이유 때문에 이번 글을 통해서 각 질문들의 기저에 깔려있는 패턴들을 다뤄보려고 합니다. ⎯ LeetCode에서 수백개의 문제를 풀면서 고통받지..
-
[Linux] Ubuntu vim 설치 및 설정
Ubuntu 18.04 LTS vim 설치하기 전 apt-get 업데이트 sudo apt-get update업데이트 마치고 vim 설치 sudo apt-get install vim기능 추가를 위해 설정 파일 열기 vi ~/.vimrc편집기 입력을 위해 i 를 눌러주고 필요한 내용 추가 set number " line 표시 set ai " auto indent set si " smart indent set cindent " c style indent set shiftwidth=4 " 자동 공백 채움 시 4칸 set tabstop=4 " tab을 4칸 공백으로 set ignorecase " 검색 시 대소문자 무시 set hlsearch " 검색 시 하이라이트 set nocompatible " 방향키로 이동 ..
-
BFF(Backend for Frontend) 란?
frontend SPA 서비스와 backend springboot 애플리케이션을 연결할 BFF(backend for frontend)를 만들기 앞서 BFF 개념을 알아봅니다. 원문을 제가 나름대로 이해한 대로 적어 내용은 약간 다를 수 있습니다. BFF 란? BFF(Backend for Frontend) 는 마이크로서비스 아키텍처의 여러 패턴 중의 하나로, 하나의 인터페이스로 구성되어있던 모노리스 서비스에서 마이크로서비스로 전환되면서 여러 UI기반 시스템이 여러 서비스의 api를 호출하고 통신하는 형태로 발전했습니다. 천천히 아키텍처가 발전하는 흐름에 맞춰서 형태가 변경되어온 셈입니다. Monolith 분해 먼저 하나의 거대한 시스템이 응용 프로그램 자체였던 시절부터 시작합니다. 이전 문서에서는 마이크로..
-
NOSQL이랑 친해지기 - MongoDB Compass 실습 (5/5)
NoSQL(5) mongoDB 관리 GUI툴 mongodb compass를 사용해서 간단한 실습을 진행해보자. db, collections 만들기 데이터 베이스를 생성하고, collection를 생성합니다. 저는 test 데이터에 users 라는 컬렉션을 생성했습니다. Capped : 최초 제한된 크기로 생성된 공간에서만 데이터를 저장하는 설정입니다. 저장 공간이 차면 기존 공간을 재사용할 수 있습니다. 일정 시간에만 저장하는 로그에 적합합니다. Capped Collection을 true로 체크하고 최대 크기를 10000으로 지정해보겠습니다. 방금 GUI로 설정한 것들을 직접 shell에서 입력해서 설정한다고 가정한다면, # MongoDB 접속 mongo # 전체 데이터베이스 열람 show dbs # 데..