본문 바로가기

분류 전체보기

(115)
백준 1078 - 뒤집음 https://www.acmicpc.net/problem/1078 1078번: 뒤집음 어떤 수를 뒤집는다는 것은 오른쪽부터 다시 쓰는것이다. 예를 들어, 1234를 뒤집으면 4321이 되고, 100을 뒤집으면 1이 된다. (앞에 0은 무시) 어떤 수 D가 주어질 때, x – (x를 뒤집은 수)가 D가 되는 www.acmicpc.net 정말 너무 어려운 문제였다. 애초에 이건 알고리즘 문제보다 수학 문제에 가까웠다. 정말 어렵지만, 설명할 수 있는 만큼 최대한 자세하게 설명했으니 도움이 되길 바란다. 공식분석하기 X에 대한 공식 $$ X = a_0 * 10^{L-1} + a_1 * 10^{L-2} +... + a_{L-1} * {10^0} $$ 이 때 자릿수는 0부터 센다. 먼저 X는 자릿수의 수 * 10..
@Repository, @Service, DTO는 MVC 중 뭐지? @Repository, @Service, DTO는 MVC 중 어디에 속할까? 이를 살펴보기에 앞서 먼저 MVC에 대해 알아보자! MVC 1. Model Model은 비즈니스 로직을 처리한다. Model은 데이터를 처리한다 -> 데이터에 접근하고 조작하는 방법을 제공한다. 2. View View는 사용자에게 화면을 렌더링해주는 역할을 담당한다. Model의 데이터를 사용자에게 보기 쉽게 제공해준다. 3. Controller Controller는 요청에 따라 View와 Model로 명령을 적절히 분배해준다. Model을 통해 데이터를 조작하며, 렌더링할 View를 결정한다. 참고로 Controller는 View를 렌더링하지 않고, API로써 JSON이나 데이터를 반환할 수도 있다. 이런 경우, 반환값은 Mo..
무료로 https 인증서 발급받는 방법 알려준다! 허허허허. 나는 지금까지 CA에서 인증서 발급받으려면 유료인 줄 알았다. 근데 완전 무료로 받을 수 있네?? 지금부터 개꿀팁을 공개하도록 하겠다. 먼저 그 전에 내가 여기까지 오게 된 일련의 과정을 적어놓겠다. 내 경험을 기록해야 다음 번에 또 삽질을 안 할 수 있기때문이다. CA가 뭔지 모르겠다면? https://code-mania.tistory.com/62를 참고하자! 원숭이도 읽으면 이해할 수 있는 https2 생활코딩 님의 https 수업을 듣고 복습 및 추후 상기 목적으로 정리한 내용입니다. 제 생각대로 적어놓은 것도 있습니다.. 조심하세요! https://opentutorials.org/course/228/4894 SSL과 암호화 그러면 이번에 code-mania.tistory.com 뻘짓 1..
DOCKER Host is unreachable 해결하기 원인: 방화벽 설정 내 맥에서 Container를 만들어서 server로 요청을 날렸을 때 아주 정상적을 잘 동작했다. 그런데 server 컴퓨터에서 Container를 만들어서 server로 요청을 날려보니 다음과 같이 에러가 발생했다. java.net.NoRouteToHostException: Host is unreachable at java.base/sun.nio.ch.Net.connect0(Native Method) at java.base/sun.nio.ch.Net.connect(Net.java:503) at java.base/sun.nio.ch.Net.connect(Net.java:492) //...생략 열심히 검색하다보니 iptables를 사용하는 경우 Docker bridge network에..
log file 날짜별 rolling 설정 그동안 log file을 rolling 없이 관리했는데, 그냥 그러다가 문득 rolling 설정을 해야겠다는 생각이 들어서 해보았다. 나는 `xml`로 설정을 진행하였다. 1. `appender` 추가 logs/refill.log %d [%thread] %-5level %-50logger{40} - %msg%n logs/refill-%d{yyyy-MM-dd}.log 위와 같이 `appender`를 `configuration tag` 밑에 추가해줘야 한다. 기본적으로 하나의 파일에 모든 log가 저장된다. 그 하나의 파일명을 정해주는 게 `file tag`이다. `encoder`는 log 파일에 저장될 log들의 pattern을 지정해준다. `rollingPolicy`는 파일 rolling 설정에 관한 정..
백준 12094 - 2048(Hard) https://www.acmicpc.net/problem/12094 12094번: 2048 (Hard) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 보드 움직이기 먼저 보드를 움직이는 로직을 살펴보겠다. 간단하게 위로 움직이는 로직만 살펴본다. private static boolean move(Direction dir, int cnt) { int[][] map = maps[cnt]; boolean isChanged = false; switch (dir) { case TOP: for (int j = 0; j < N;..
Dockerfile: CMD로 여러 명령어 수행하기 Dockerfile에서 CMD를 통해 여러 개의 명령어를 수행하고싶어졌다. 내가 알아낸 방법은 2개이다. 방법 1 .sh file을 만들어서 활용하는 것이다. start.sh #!/bin/sh cd installcert ls mkdir testdir java -jar /app.jar 위와 같이 start.sh를 만들었다고 하자! 이제 Dockerfile에서 이 start.sh를 사용하도록 설정만 하면 된다. 주의할 점은 맨 윗부분에 적어놓은 #!/bin/sh라는 명령어이다. 이 부분은 내가 사용하는 image에 따라 다를 수 있다. #!shell path를 입력하면 되는데, echo $0 명령어로 sehll path를 확인할 수 있다. Dockerfile FROM openjdk:14-jdk-alpine ..
백준 1007 - 벡터 매칭 https://www.acmicpc.net/problem/1007 1007번: 벡터 매칭 평면 상에 N개의 점이 찍혀있고, 그 점을 집합 P라고 하자. 집합 P의 벡터 매칭은 벡터의 집합인데, 모든 벡터는 집합 P의 한 점에서 시작해서, 또 다른 점에서 끝나는 벡터의 집합이다. 또, P에 속 www.acmicpc.net 문제해석 임의의 점이 N개 주어진다. 해당 N개의 점을 한 번씩 사용해서 만들 수 있는 벡터들의 합 중 최소값을 찾고, 길이를 구해야 한다. 점 (5, -3)에서 점 (2, 4)를 향하는 벡터는 다음과 같다. (2-5, 4+3) = (-3, 7) 또한 벡터 (-3, 7)과 벡터(2, -2)의 합은 다음과 같다. (-3 + 2, 7 -2) = (-1, 5) 또한 이렇게 만들어진 벡터의 길이..