반응형
[Docker] Container SSH key 접속, scp 명령어로 파일 전송 (3)
공부/DevOps2023. 7. 15. 15:51[Docker] Container SSH key 접속, scp 명령어로 파일 전송 (3)

* 절차 : Docker Network 신규 생성 > hostname 지정 > ssh key 통신 접속 수행 Docker Network 생성 $ docker network create --gateway 172.19.0.1 --subnet 172.19.0.0/16 home # 확인 $ docker network ls $ docker inspect home - home bridge 신규 생성 - docker의 경우 신규 컨테이너 생성시 default 네트워크에 B클래스 대역 IP로 할당하는 것으로 보임 Docker Container 실행 및 SSH Key 접속 - 사전에 만들어 놓은 ubuntu와 jenkins container 를 활용하여 - docker run의 경우 container를 다시 만들고, 실..

[Docker] Container IP 확인 및 SSH 접속하기 (2)
공부/DevOps2023. 7. 14. 22:43[Docker] Container IP 확인 및 SSH 접속하기 (2)

Docker Container 별 IP Address 확인 1. host (local) 에서 docker command로 확인하기 방법1. docker inspect json 형태로 구성된 (low-level) docker container 정보에서 확인 $ docker inspect -f "{{.NetworkSettings.IPAddress}}" $ docker inspect | grep IPAddress 방법2. docker exec 실행 중인 docker container 에 command 실행 시킴 이때 ip 명령어의 경우 서버에 패키지 설치 되어 있지 않을 경우 동작하지 않음 (iproute2 패키지 설치) $ docker exec ifconfig eth0 $ docker exec ip addr..

[Next Step] 3.3 원격 서버에 배포 (p84) 정리
독서/📚2023. 7. 11. 21:38[Next Step] 3.3 원격 서버에 배포 (p84) 정리

요구사항 로컬 개발 환경에 설치한 HTTP 웹 서버를 물리적으로 떨어져 있는 원격 서버에 배포해 정상적으로 동작하는지 테스트한다. 이때 HTTP 웹 서버 배포 작업은 root 계정이 아닌 배포를 담당할 새로운 계정을 만들어 진행한다. ① 계정 추가 및 sudo 권한 할당② 각 계정별 UTF-8 인코딩 설정해 한글 이슈 해결③ JDK, 메이븐 설치④ Git설치, clone 및 빌드⑤ 방화벽 설정(ufw)⑥ 소스 코드 재배포 참고. AWS 사용할 경우 아래 링크 참고 (p83)https://opentutorials.org/module/1946 참고. 영상 자료https://www.youtube.com/watch?v=dWGzApCuF9Mhttps://www.youtube.com/watch?v=N8iLAuAo-..

[BOJ 15681] 트리와 쿼리 (Java, DP, DFS)
알고리즘/동적 프로그래밍2023. 7. 11. 17:00[BOJ 15681] 트리와 쿼리 (Java, DP, DFS)

문제 링크 https://www.acmicpc.net/problem/15681 15681번: 트리와 쿼리 트리의 정점의 수 N과 루트의 번호 R, 쿼리의 수 Q가 주어진다. (2 ≤ N ≤ 105, 1 ≤ R ≤ N, 1 ≤ Q ≤ 105) 이어 N-1줄에 걸쳐, U V의 형태로 트리에 속한 간선의 정보가 주어진다. (1 ≤ U, V ≤ N, U ≠ V) www.acmicpc.net 문제 풀이 - 시간 복잡도 O(V + E) // 인접 리스트 사용 - 백준 링크에 들어가보면 하단에 친절하게 로직을 설명하고 있어 참고하면 됨 # 입력 트리를 그릴 경우 5번 Root 기준 5 4 6 3 7 8 9 1 2 # subtree 결과 subtree [0, 1, 1, 3, 4, 9, 4, 1, 1, 1] 제출 코드 ..

[BOJ 2579] 계단 오르기 (Java, DP)
알고리즘/동적 프로그래밍2023. 7. 11. 12:33[BOJ 2579] 계단 오르기 (Java, DP)

문제 링크 https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 문제 풀이 - 시간복잡도 O(N) 처음 문제 풀이시 아래 (1)과 같이 점화식을 사용하여 문제 풀이를 수행했다 // i = 1, 2 일때 초기화 수행 DP[i] = DATA[i] + Math.max(DATA[i - 1] + DP[i - 3], DP[i - 2]) 이후에 더 나은 방식이 없는지 고민하던 중 예전에 구입했던 패스트 캠퍼스 강의를 확인했고, 2차원 배열을 사용하여 의미 부여를 통해 풀이하..

[BOJ 15990] 1, 2, 3 더하기 5 (Java, DP)
알고리즘/동적 프로그래밍2023. 7. 10. 22:10[BOJ 15990] 1, 2, 3 더하기 5 (Java, DP)

문제 링크 https://www.acmicpc.net/problem/15990 15990번: 1, 2, 3 더하기 5 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net 문제 풀이 - 시간 복잡도 : O(N) - 1,2,3 더하기 문제에서 조금 변형된 문제, 상향식, 하향식 연습하기 좋은 문제 - 단, 같은 숫자를 연속적으로 붙일 수 없기 때문에 이전 숫자에서 무엇이 사용되었는지 상태값을 기록할 필요가 있다 (2차원 배열 사용) - 간단하게 2차원 배열로 해서 1 ~ 3 숫자 사용 여부를 표기하고 동일하게 점화식으로 구하면 됨 - 최대치 long DP[N + 1][4] 2차원 배열 생성 ( DP[N][1..

[BOJ 15988] 1, 2, 3 더하기 3 (Java, DP)
알고리즘/동적 프로그래밍2023. 7. 10. 21:28[BOJ 15988] 1, 2, 3 더하기 3 (Java, DP)

문제 링크 https://www.acmicpc.net/problem/15988 15988번: 1, 2, 3 더하기 3 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net 문제 풀이 - 시간 복잡도의 경우 둘다 O(N) - 최대치의 경우 long ( 나머지 연산 처리해도 N이 최대이면 범위가 넘는 듯 함) - 피보나치에서 조금 변형된 기본 DP 문제 - 상향식, 하향식 형식 연습하기 좋은 기본 문제 0 1 2 3 4 0 1 1 + 1 2 1 + 1 + 1 2 + 1 3 1 + 1 + 1 + 1 2 + 1 + 1 3 + 1 1 + 1 + 2 2 + 2 1 + 3 점화식 DP[i] = (DP[i - 1] + ..

[BOJ 2688] 줄어들지 않아 (Java, DP)
알고리즘/동적 프로그래밍2023. 7. 10. 21:04[BOJ 2688] 줄어들지 않아 (Java, DP)

문제 링크 https://www.acmicpc.net/problem/2688 2688번: 줄어들지 않아 첫째 줄에 테스트 케이스의 개수 T(1

[BOJ 1495] 기타리스트 (Java, DP)
알고리즘/동적 프로그래밍2023. 7. 10. 15:11[BOJ 1495] 기타리스트 (Java, DP)

문제 링크 https://www.acmicpc.net/problem/1495 1495번: 기타리스트 첫째 줄에 N, S, M이 주어진다. (1 ≤ N ≤ 50, 1 ≤ M ≤ 1,000, 0 ≤ S ≤ M) 둘째 줄에는 각 곡이 시작하기 전에 줄 수 있는 볼륨의 차이가 주어진다. 이 값은 1보다 크거나 같고, M보다 작거나 같다. www.acmicpc.net 문제 풀이 - 시간복잡도의 경우 상향식 O(N), 하향식 O(2^N) 소요됨 - 하향식의 경우 메모리제이션 기법 사용하여 풀이 - 상향식으로 풀 때 초기항부터 누적하는 형태로 풀이할 경우 최대치가 int를 초과하는 것으로 생각됨 (최대치 따로 구해보기) *하향식 풀이의 경우 아래 기술 블로그 통해 형식 이해함 https://steady-coding...

[BOJ 5557] 1학년 (Java, DP)
알고리즘/동적 프로그래밍2023. 7. 10. 14:13[BOJ 5557] 1학년 (Java, DP)

문제 링크 https://www.acmicpc.net/problem/5557 5557번: 1학년 상근이가 1학년 때, 덧셈, 뺄셈을 매우 좋아했다. 상근이는 숫자가 줄 지어있는 것을 보기만 하면, 마지막 두 숫자 사이에 '='을 넣고, 나머지 숫자 사이에는 '+' 또는 '-'를 넣어 등식을 만들며 놀 www.acmicpc.net 문제 풀이 - 입력의 경우 int 배열로 100개까지 받으므로 400byte - 연산에 필요한 DP의 경우 행20 * 100 * 8byte = 16KB 정도 메모리 잡음 - 최대치의 경우 출력에 2^63 -1 명시되어 있기 때문에 long으로 처리 시간 복잡도 상향식 (Bottom-Up) 하향식(Top-Down, 재귀 함수) O(N * 20) O(2^n) = O(2^100) - ..

[BOJ 2193] 이친수 (Java, DP)
알고리즘/동적 프로그래밍2023. 7. 10. 11:31[BOJ 2193] 이친수 (Java, DP)

문제 링크 https://www.acmicpc.net/problem/2193 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net 문제 풀이 - 시간복잡도 : O(N) - 점화식 DP[N] = DP[N - 2] + DP[N - 1] 형태로 최대 N이 90까지 가능하다 - 피보나치의 경우 46번째만 넘어가도 29억이 넘기 때문에 long (8byte, 64bit)으로 문제 풀이 해야 함 풀이 순서 가짜 문제 정의 - 가짜 문제로 정답을 구할 수 있는가? - 초기항 - 점화식 - 풀이 & 테스트 0 1 2 ..

[Docker] Jenkins 설치 및 Github 연동 (1)
공부/DevOps2023. 7. 8. 14:52[Docker] Jenkins 설치 및 Github 연동 (1)

Jenkins 설치 (By Docker) - 처음 lts와 2.176.2 설치했었는데, 버전 문제인지 플러그인 설치 실패 계속 되었음 - docker hub에서 2.413-jdk11버전으로 받으니 플러그인 정상 설치 확인 # docker image 검색 $ docker search jenkins # image 다운로드 $ docker pull jenkins/jenkins:2.413-jdk11 # image 확인 $ docker images # 설치 $ docker run --name jenkins -d -p 8080:8080 -p 50000:50000 -v /home/jenkins:/var/jenkins_home -u root jenkins/jenkins:2.413-jdk11 # container 터미널..

[BOJ 2096] 내려가기 (Java, DP, 슬라이딩 윈도우)
알고리즘/동적 프로그래밍2023. 7. 7. 13:43[BOJ 2096] 내려가기 (Java, DP, 슬라이딩 윈도우)

문제 링크 https://www.acmicpc.net/problem/2096 2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net 문제 풀이 - 시간 복잡도 O(N) - 메모리 제한 4MB 직접 문제를 풀었을 때 최대 값을 구하는 것은 Bottom-Up방식으로 설명에 따라 그대로 하였기에 구할 수 있었다. 그러나 최소 값의 경우 구할 수 없었고, 기술 블로그를 찾아 본 결과 '메모리 제한', '슬라이딩 윈도우 기법'와 같은 파악하지 못 한 부분에 대해서도 확인할 수 있었다. (최소값의 경우 반대로 선택 가능 범위 내에 최소 값을..

[BOJ 1562] 계단수 (Java, DP, Bit Masking)
알고리즘/동적 프로그래밍2023. 7. 4. 20:42[BOJ 1562] 계단수 (Java, DP, Bit Masking)

문제 링크 https://www.acmicpc.net/problem/1562 1562번: 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 문제 풀이 해당 문제의 경우 직접 풀이하지 못하고, 기술 블로그를 참고하여 풀 수 있도록 하였습니다. 2차원 배열 DP로 풀이시 문제가 되었던게 '0 ~ 9의 숫자를 사용한 여부는 어떻게 알 수 있을까' 였습니다. 3차원으로 변경하여 0 ~ 9 까지 체크했는지 반복문으로 사용해서 할 경우 그거대로 더 복잡해 질거 같은 생각이 들었습니다. 기술 블로그를 찾아본 결과 해당 문제는 '비트 마스킹' 기법을 사용하여 문제 풀이 가능한 것을 알게 되었고 2~3일간 이해가 되지 않아 시간을 보냈고, 지금은 이해한 내용을 ..

[BOJ 1309] 동물원 (Java, DP)
카테고리 없음2023. 7. 4. 18:12[BOJ 1309] 동물원 (Java, DP)

문제 링크 https://www.acmicpc.net/problem/1309 1309번: 동물원 첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다. www.acmicpc.net 문제 풀이 - 시간복잡도 O(N) - 최대치의 경우 9907에 대한 나머지를 구하라 하므로 Integer로 예상 가능 (문제 설명에 나머지 처리 없는 경우 최대치 잘 파악) 2 * 1 일때 0 의 경우 아무것도 없는 경우 1의 경우 왼쪽에 사자가 있는 경우 🦁 2의 경우 오른쪽에 사자가 있는 경우 🦁 2 * 2의 경우 1) 앞에 블록에 빈 우리 더할 경우 : 3가지 🦁 🦁 2) 왼쪽에 사자🦁가 있는 우리를 추가하는 경우 : 2 가지 빈 우리 아래에 추가하거나 🦁 오른쪽에 사자가 있는 우리 밑에 추가 할 수 있다 🦁 🦁 ..

[BOJ 2688] 줄어들지 않아 (Java, DP)
알고리즘/동적 프로그래밍2023. 7. 4. 12:48[BOJ 2688] 줄어들지 않아 (Java, DP)

문제 링크 https://www.acmicpc.net/problem/2688 2688번: 줄어들지 않아 첫째 줄에 테스트 케이스의 개수 T(1 0) { T -= 1; N = Integer.parseInt(br.readLine()); sb.append(sumValue(N)).append("\n"); } } static long sumValue(int n) { long result = 0L; for(long v : DP[N]) { result += v; } return result; } static void preProcess() { DP = new long[65][10]; for(int i = 0; i

[BOJ 9465] 스티커 (Java, DP)
알고리즘/동적 프로그래밍2023. 7. 4. 12:08[BOJ 9465] 스티커 (Java, DP)

문제 링크 https://www.acmicpc.net/problem/9465 9465번: 스티커 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의 www.acmicpc.net 문제 풀이 - 시간 복잡도 O(N), 최대치 Integer 범위 내 - 스티커 하나를 뜯을 경우 상하좌우로 찢어져서 사용할 수 없게 됨 - 2 x N열 스티커, 2차원 배열 형태의 DP 문제 초기화 1 DP[0][i] 50 DP[1][i] 30 0번행의 2열 스티커를 뽑을 경우 아래 선택가능한 영역에서 최대치를 뽑아 더해주면 됨 0 1 2 O 스티커 선택 O O 1번행의 2열..

[BOJ 9095] 1,2,3 더하기 (Java, DP)
알고리즘/동적 프로그래밍2023. 7. 3. 14:07[BOJ 9095] 1,2,3 더하기 (Java, DP)

문제 링크 https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 문제 풀이 - 시간복잡도 O(N) - DP 상향식 문제 *절차 (1) 가짜 문제 정의 진짜 문제 = 주어진 N에 대해 N을 1,2,3의 합으로 표현하는 경우의 수 가짜 문제 = DP[i] 를 1,2,3으로 표현하는 경우의 수 (2) 가짜 문제를 풀면 진짜 문제를 풀 수 있는가 ? YES (3) 초기항 정의 0 1 2 3 0 1 2 ( 1 + 1, 2) 4 - 0에 3을 더할 경우 - 1에 2를 더할 경우 - 2에 1을 더할 경우 (4) 점화식 세우기 DP[i] = DP[i - 1] +..

반응형
image