분류 전체보기(361)
-
[Baekjoon] 1484번: 다이어트
https://www.acmicpc.net/problem/1484 1484번: 다이어트 성원이는 다이어트를 시도중이다. 성원이는 정말 정말 무겁기 때문에, 저울이 부셔졌다. 성원이의 힘겨운 다이어트 시도를 보고만 있던 엔토피아는 성원이에게 새로운 저울을 선물해 주었다. www.acmicpc.net 문제 설명 입력된 G값은 현재 몸무게의 제곱에서 기억하고 있던 몸무게의 제곱을 뺀 값이다. 현재 몸무게로 가능한 모든 수를 출력해야 한다. 풀이 방법 투 포인터를 활용해 간단하고 효율적으로 해결할 수 있다. 모든 수를 출력하는 것 외에 다른 제한이 따로 없어서 당황할 수 있는데 규칙을 찾으면 반복의 종료 조건을 찾을 수 있다. 예제 입력으로 흐름을 따라가보자. 먼저 기억하고 있던 몸무게를 left, 현재 몸무게..
2023.04.11 -
[Groovy] 기본 문법
Groovy란? Java에 python이나 ruby 등의 특징을 더한 동적 객체 프로그래밍 언어이다. Gradle에서 build.gradle에서 사용되는 언어가 기본적으로 Groovy이기 때문에 기본 문법을 알면 좋다. 변수 동적 타입 바인딩 def a = 20 // 값을 할당할 때 a 변수의 타입이 결정됨 a = "문자열" // 다른 값 할당 시 변수 타입이 변함 b = "문자열" // 변수 선언 시 def 생략 가능 정적 타입 바인딩 int a = 20 // 변수 a는 int로 자료형이 고정됨 a = "문자열" // 다른 타입을 할당하면 오류 발생 문자열과 자동 형변환 String a = "문자열" // 변수 a는 String으로 자료형 고정 a = 20 // 정수 20이 문자열 "20"으로 자동 형..
2023.04.10 -
[k8s] 기본 개념
컨테이너 인프라 환경 리눅스 OS 커널 하나에서 여러 개의 컨테이너가 격리된 상태로 실행되는 인프라 환경을 말한다. 여기서 컨테이너는 하나 이상의 목적을 위해 독립적으로 작동하는 프로세스이다. 컨테이너 인프라 환경을 구성하면 눈송이 서버를 방지하는 데 효과적이다. 💡 눈송이 서버란 여러 사람이 만져서 설정의 일관성이 떨어진 서버를 말한다. 가상화 환경에서는 각각의 가상 머신이 모두 독립적인 OS 커널을 가지고 있기 때문에 그만큼 자원을 더 소모해야 하고 성능이 낮아질 수밖에 없다. 하지만 컨테이너 환경은 OS 커널 하나에 컨테이너 여러 개가 격리된 형태로 실행되기 때문에 자원을 효율적으로 사용할 수 있고 거치는 단계가 적어 속도도 훨씬 빠르다. 컨테이너 인프라 환경에서 쿠버네티스가 사실상 표준으로 자리하..
2023.04.10 -
[Compiler] 3-3. 문법 표기법
대표적인 문법 표현 방법은 정규 표현, 구문 도표, BNF, EBNF가 있다. 1. 정규 표현 정규 표현(regular expression)은 정규 언어를 가장 잘 표현할 수 있는 방법이다. 정규 표현은 다음과 같이 재귀적으로 정의된다. 기본 단계 : 기본을 정의하는 세 가지 규칙이 있다. \(\varnothing\)는 공집합을 나타내는 정규 표현이다. \(\varepsilon \)은 공문자열을 나타내는 정규 표현이다. 터미널 기호인 a는 집합 {a}를 나타내는 정규 표현이다. 귀납 단계 : r과 s가 정규 언어 L(r)과 L(s)를 나타내는 정규 표현이라면 (r) + (s)는 L(r) \(\cup\) L(s)를 나타내는 정규 표현이다. (r) \(\cdot\) (s)는 L(r) \(\cdot\) L(s..
2023.04.10 -
[Compiler] 3-2. 형식 문법
형식 문법은 크게 두 가지 방법으로 정의할 수 있다. 생성 규칙(Production Rule)만으로 표현 항목으로 정의 1. 형식 문법 형식 문법 \(G=(V_N,V_T,P,S)\) 는 다음과 같이 네 가지 항목으로 정의된다. \(V_N\): 논터미널 기호의 유한집합 \(V_T\): 터미널 기호의 유한집합 \(V_N\cap V_T=\varnothing ,V_N\cup V_T=V\) 터미널 기호와 논터미널 기호를 문법 기호(grammer symbol)라 하며 보통 \(V^{vocabulary}\)로 표시한다. \(P\): 생성 규칙의 유한집합 \(\alpha \to \beta, \alpha \in V^+, \beta \in V^*\) \(\alpha\)를 왼쪽 부분(left-hand side), \(\be..
2023.04.10 -
[Baekjoon] 14503번: 로봇 청소기
https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 첫째 줄에 방의 크기 $N$과 $M$이 입력된다. $(3 \le N, M \le 50)$ 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 $(r, c)$와 처음에 로봇 청소기가 바라보는 방향 $d$가 입력된다. $d$가 $0$인 경우 북쪽 www.acmicpc.net 문제 설명 주어진 조건대로 동작하는 시뮬레이션 문제이다. 문제를 잘 읽고 알고리즘을 구현해야 한다. 특별히 부연설명할 게 없어서 설명은 사이트를 참고하면 좋겠다. 풀이 방법 주어진 조건대로 구현하면 되는 심플한 문제이다. 대신 조건이 많아서 꼼꼼히 예외처리를 해줘야 한다. 필자는 큐를 활용해서 해결했다. BFS를 약간 변형했다. 코드를 읽어내려가면..
2023.04.10