분류 전체보기 211

[AWS] EC2 Linux2 에 Spring Boot 프로젝트 배포

1. 인스턴스에서 JDK 설치 java 17을 쓰고 있기 때문에 아래와 같이 설치하였다. java17 rpm 다운로드 wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm java17 rpm 설치 sudo rpm -ivh jdk-17_linux-x64_bin.rpm 설치한 JDK 버전 선택 sudo alternatives --config java 확인 java -version 2. Git clone git설치 sudo install git SSH키 생성 cd ~/.ssh ssh-keygen -t rsa -C github계정 메일 공개키를 github에 등록 cat id_rsa.pub 출력된 내용을 복사하여 github ssh k..

MountainGo 2023.01.26

[AWS] EC2 Linux2에 MariaDB 설치 및 데이터 마이그레이션

1. MariaDB 설치 marida db 설치 sudo yum install mariadb-server 서비스 실행 sudo systemctl start mariadb 상태확인 sudo systemctl status mariadb 관리자 비밀 번호 설정 mysqladmin -u root -p password '비밀번호' 설정 시 비밀 번호를 묻는데, 초기에는 없으므로 그냥 Enter를 치면 됨 접속 mysql -u root -p 설정한 비밀번호 입력 / 접속 완료 2. 데이터 베이스 생성 데이터 베이스 생성 create database DB명 생성된 DB 확인 show databases 계정 생성 create user '유저명'@'허용 IP' identified by '비밀번호' 권한 부여 GRANT ..

MountainGo 2023.01.26

[AWS] EC2 Linux2에 Redis 설치

1. 사전 작업 패키지 최신 업데이트 sudo yum update gcc make 설치 sudo yum install gcc make redis 포트 열어주기 AWS 인스턴스 적용 보안그룹에 아래 규칙 추가 2. redis 설치 redis설치할 폴더 생성 sudo mkdir ~/redis redis 설치 sudo wget http://download.redis.io/redis-stable.tar.gz 압축 해제 sudo tar zxvf redis-stable.tar.gz 컴파일 sudo cd redis-stable sudo make redis-server, redis-cli가 /usr/local/bin 경로에 생성 sudo make install 3. redis 설정 디렉토리 생성 설정파일 저장, 데이터..

MountainGo 2023.01.26

[Git] 특정 파일 히스토리 삭제

public repository에 민감 정보가 포함된 파일 이력이 남아서, 강제로 해당 파일의 히스토리를 삭제할 필요가 있어서 찾아 보았다. git local repository로 이동하여 cmd창을 열어 아래 명령어를 실행한다. (참고로 window os) git filter-branch --force --index-filter "git rm --cached --ignore-unmatch " --prune-empty --tag-name-filter cat -- --all 예) src/main/resources/application.properties git filter-branch --force --index-filter "git rm --cached --ignore-unmatch src/main/re..

MountainGo 2023.01.25

[프로그래머스] 외벽 점검 (Python)

문제 https://school.programmers.co.kr/learn/courses/30/lessons/60062?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 & 소스코드 from itertools import permutations def solution(n, weak, dist): answer = len(dist) + 1 # 취약점 길이를 두배로 늘리기 weak_len = len(weak) for i in range(weak_len): weak.append(weak[i] + n) # 친구의 순열을 뽑는다. f..

[BOJ 2887] 행성 터널 (Python)

문제 https://www.acmicpc.net/problem/2887 2887번: 행성 터널 첫째 줄에 행성의 개수 N이 주어진다. (1 ≤ N ≤ 100,000) 다음 N개 줄에는 각 행성의 x, y, z좌표가 주어진다. 좌표는 -109보다 크거나 같고, 109보다 작거나 같은 정수이다. 한 위치에 행성이 두 개 이 www.acmicpc.net 풀이 크루스컬로 풀면 될 것 같은데 간선 정보가 없다. 간선을 내가 만들어야 하는데 모든 경우의 수를 고려하면 시간초과 각이다 비용이 각 양쪽 좌표 별 차이 값의 최소값이므로 좌표를 분리해서 간선을 만든다. x, y, z 각 좌표와 노드 번호를 저장 후 좌표 값 오름차순으로 정렬 좌표 별로 한쌍 씩 묶어서 비용과 노드를 edges 리스트에 저장 edges 리스..

[BOJ 11404] 플로이드 (Python)

문제 https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 풀이 floyd 알고리즘 소스코드 n = int(input()) m = int(input()) arr = [[1e9]*(n+1) for _ in range(n+1)] for i in range(1, n+1): for j in range(1, n+1): if i == j: arr[i][j] = 0 for _ in range(m): i, j, cost = map(int, input().split..

[BOJ 18353] 병사 배치하기 (Python)

문제 https://www.acmicpc.net/problem/18353 18353번: 병사 배치하기 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 2,000) 둘째 줄에 각 병사의 전투력이 공백을 기준으로 구분되어 차례대로 주어진다. 각 병사의 전투력은 10,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 LIS 알고리즘 사용. DP방식으로 이중 For문 사용하여 구현 https://gom20.tistory.com/91 [Algorithm] LIS 알고리즘 (최장증가수열 알고리즘) LIS 알고리즘이란? LIS 알고리즘 (Longest Increasing Subsequence Algorithm) 은 최장증가수열 알고리즘으로 증가하는 원소들의 가장 긴 부분집합을 찾는 알고리즘이다...