[프로그래머스] Level3 - 기지국 설치
> 문제
문제 : [기지국 설치]
> 문제풀이
n의 최댓값이 2억개이다.
이미 설치된 기지국 사이의 범위 사이즈를 구해서 기지국 통신 범위를 나눠서 연산하였다.
나머지가 0이라면 나눈값을, 0이 아니라면 1을 추가해주었다.
class Solution {
public int solution(int n, int[] stations, int w) {
int answer = 0, pos = 0, st = 0, et = 0, size = 0;
for(int i=0; i<stations.length; i++){
s...
[Java] Java, JVM 원리
Java가 어떻게 동작하는지 개념과 원리를 좀 더 잡아보자.
ㅣ. 개요
C/C++, Java, Python 등 사람이 작성하고 이해할 수 있는 언어를 고급언어라고 일컫는다.
컴퓨터는 0, 1로 이루어진 기계어만을 이해할 수 있는데, 고급언어를 기계어로 변환하는 것을 컴파일(Compile)이라 하며, 이 작업을 할 수 있게 하는 것을 컴파일러(Compiler)라 한다.
즉, 내가 작성한 소스를 컴퓨터에서 실행하기 위해서는 컴파일을 꼭 해주어야 한다.
언어마다 작성한 소스코드를 기계어로 변환시키는 방법이 조금씩 다른데,
C/C++ 는 각각의 OS ( Windows, ...
[Docker] 컨테이너 외부접속 (Port forwarding, Detached)
apache와 mysql 을 도커 컨테이너로 실행하고, 외부에서 접속이 가능하도록 한다.
l. 웹 서버(아파치) 실행, 포트 포워딩(Port forwarding)
외부에서 내부 도커 컨테이너로 접속하기 위해서, 포트 포워딩 을 해준다.
포트 포워딩은 외부 주소와 내부 주소를 이어주는 역할을 한다.
예를들어, 컨테이너의 웹서버를 80번 포트로 설정했을 때, 호스트 80번 포트와 내부 컨테이너 80번 포트를 포워딩 한다.
호스트 IP의 80번 포트로 접근 => 호스트의 80번 포트는 컨테이너의 80번 포트로 포워딩 => 웹 서버 접근
포트 포워딩을 위해 -p [호스...
[Docker] Docker 사용하는 이유
가상머신과 Docker의 차이를 알아보고자 한다.
가상머신과 Docker
기존의 가상화 기술은 하이퍼바이저를 이용해 여러 개의 운영체제를 하나의 호스트에서 생성해 사용하는 방식이었다.
이러한 여러 개의 운영체제는 가상 머신이라는 단위로 구분되며, 하이퍼바이저에 의해 생성되고 관리되는 운영체제를 게스트 운영체제(Guest OS)라고 한다.
각 게스트 운영체제는 다른 게스트 운영체제와 독립된 공간에서 시스템 자원을 할당받아 사용한다. 이러한 방식의 대표적인 가상화 툴로 VirtualBox, VMware 등이 있다.
시스템 자원을 가상화하고 독립된 공간을 생성하는 작업은 하이퍼바이저...
[Docker] Docker 기본 명령어
다음은 Docker를 사용하기 위한 명령어를 나열하였다.
l. Docker 기본 명령어
docker pull [Image name] # 이미지를 로컬 도커 엔진으로 내려받는다.
docker create -it --name [name] [Image name]
# 컨테이너 생성은 run이 아닌 create도 가능. 들어가진 않고 생성만 한다.
docker start [Container ID/Name] # 생성된 컨테이너를 실행한다.
docker attach [Container ID/Name] # 실행중인 컨테이너에 들어간다.
docker run -it [Image ID/Name] # 도...
[Docker] Docker 엔진 설치 및 실행
docker 엔진의 종류 및 버전, Mac OS 에서 설치하고 실행해보고자 한다.
1. Docker 엔진 종류 및 버전
2017년 이전의 도커 엔진은 1.x 버전으로 표기되어 왔습니다. 1.13을 마지막으로 2017년 3월부터 도커 엔진은 EE(Enterprise Edition) 과 CE(Community Edition) 으로 구분되어 제공된다. 버전 이름 또한 17-03-EE 또는 17-03-CE 형태로 변경되었다.
도커 EE는 기업용 솔루션으로 유료로 제공되는 반면, CE는 무료로 제공되는 도커 엔진이다. CE는 EE에서 제공되는 별도의 기술 지원 및 서비스는 제공되지 않지만, 핵심적...
[프로그래머스] Level4 - 올바른 괄호의 갯수
> 문제
문제 : [올바른 괄호의 갯수]
> 문제풀이
올바른 괄호란 (()) 나 () 와 같이 올바르게 모두 닫힌 괄호를 의미한다.
괄호 쌍 n개가 주어질 때 만들 수 있는 모든 가능한 괄호의 갯수는 몇개인가 ?
1. 카탈란 수 ( Catalan number )
n-1쌍의 올바른 괄호에 ()를 알맞은 곳에 넣어주는 방법을 센다.
만약, (A)B 와 같이 넣는다고 하면, A와 B도 올바른 괄호가 성립해야 하며, A에 k쌍이 있다면 B에는 n-k-1쌍이 있어야 한다.
따라서 다음과 같은 점화식을 얻을 수 있다.
C1 = C0C0
C2 = C0C1...
[프로그래머스] Level2 - 수식 최대화
> 문제
문제 : [수식 최대화]
> 문제풀이
3크기의 연산자 우선순위 배열을 만들었다.
인덱스는 우선순위를 나타내며 0이 가장 높은 우선순위를 가진다.
순열의 swap으로 우선순위를 변경하였으며, 우선순위가 가장 큰 피연산자를 먼저 연산을 먼저 하였다.
import java.util.*;
class Solution {
static public long solution(String expression) {
char[] op = new char[3]; // operation priority
op[0] = '*';
...
103 post articles, 13 pages.