본문 바로가기
반응형

전체 글130

AWS ec2 + rds 이용 스프링 프로젝트 배포 (1) - ec2 생성 및 설정 해당 글은 AWS에 가입된 아이디가 있다는 전제 하에 작성되었습니다. 우선 ec2를 사용하는 방법을 알아보도록 하겠습니다. 우선 aws에 로그인하면 아래와 같은 화면이 나오는데 아래의 사진에 표시된 서비스를 누른 후 EC2를 눌러줍니다. 해당 버튼을 누르면 아래와 같은 화면이 나옵니다. 아래의 사진에서 인스턴스 시작 버튼을 눌러줍니다. 위의 버튼을 누르면 아래와 같은 화면이 나오는데 본인이 사용할 서버의 이름을 입력하여줍니다. 위와 같이 서버의 이름을 입력한 후 스크롤을 조금 내린 후 Quick Start에서 AMI를 Amazon Linux에서 Ubuntu로 설정하여 줍니다. AMI는 운영체제를 의미한다고 생각하셔도 좋습니다. 그 후 조금 더 스크롤을 내려 아래에 있는 새 키 페어 생성 버튼을 눌러 키 .. 2024. 1. 21.
백준 1461번 : 도서관 java 이 문제는 정렬을 이용하여 푸는 그리디 알고리즘 문제입니다. 이 문제를 풀기 위해서 저는 입력받은 값들을 하나의 List에 넣어 정렬할 후 처음 인덱스에 들어있는 인자와 마지막에 있는 인자의 절댓값을 비교하여 절댓값이 큰 쪽이 앞에 오게 정렬했습니다. 그리고 M개만큼 수를 List의 0번 인덱스에서 remove하면서 출력 값 answer에 더해주었고 remove 한 값에서 부호가 바뀔 경우에는 이 List를 뒤집어서 위의 과정을 반복했습니다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new Buffere.. 2022. 8. 15.
백준 1080번 : 행렬 java 이 문제는 그리디 알고리즘을 이용하여 푸는 문제입니다. 이 문제를 풀기 위해서는 N, M을 입력받은 후 맨 처음 칸부터 행렬 A와 행렬 B가 같은지 확인하여 다르다면 그 칸을 시작으로 3x3만큼의 크기만큼을 바꾸어주어야 합니다. 이 위의 그림은 예제 1번을 나타낸 그림입니다. 이 그림에서 A의 1행 1열은 B의 숫자와 다릅니다. 따라서 이 칸을 기준으로 3x3 크기의 칸의 수를 바꾸겠습니다. 뒤집을 영역의 크기는 아래의 그림과 같습니다. 이를 뒤집으면 아래의 그림과 같이 됩니다. 그리고 A의 1행 1열을 보면 B 행렬과 다르기 때문에 위에 같이 뒤집어 줍니다. 뒤집을 영역은 아래와 같습니다. 이제 아래의 그림과 같이 A행렬과 B행렬이 같아졌습니다. 위와 같이 처음부터 A행렬과 B행렬을 비교해가면 이 문제.. 2022. 8. 14.
백준 12904번 : A와 B java 이 문제는 조건에 맞게 문자열을 변형시켰을 때 S를 이용하여 T를 만들 수 있는지 확인하는 문제입니다. 이 문제를 풀기 위해서 저는 T를 변형시켜 S가 될 수 있는지 확인했습니다. T의 마지막 문자가 A일 경우 문자를 제거하였고 마지막 문자가 B일 경우 이 문자를 제거한 후 문자열을 뒤집었습니다. 이 과정을 T와 S의 길이가 같아질 때까지 반복한 후 두 문자열이 같은지 확인하면 이 문제를 해결할 수 있습니다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputSt.. 2022. 8. 11.
백준 1092번 : 배 java 이 문제는 정렬을 이용하여 모든 박스를 옮기는 데 걸리는 시간을 구하는 문제입니다. 이 문제를 풀기 위해서는 입력받은 데이터들을 모두 내림차순으로 정렬합니다. 그 후 가장 무거운 무게를 들 수 있는 크레인부터 차례대로 박스를 옮기는 것을 시도합니다. 크레인이 박스를 옮기는 것을 성공하였으면 그 크레인은 이미 사용하였으므로 다음으로 무거운 무게를 들 수 있는 크레인을 이용하여 다음 박스를 옮깁니다. 그리고 그 크레인이 박스를 옮길 수 없다면 그다음 박스를 같은 크레인으로 옮기는 것을 시도합니다. 그리고 마지막 박스까지 순회를 마치거나 모든 크레인을 사용하였다면 다시 가장 무거운 무게를 옮길 수 있는 크레인을 이용합니다. 이 과정을 모든 박스를 옮길 때까지 반복합니다. import java.io.*; imp.. 2022. 8. 10.
백준 2212번 : 센서 java 이 문제는 문제를 이해하는 것이 어려운 문제였습니다. 이 문제는 N개의 센서가 있고 K개의 집중국이 있는데 K개의 집중국을 이용하여 수신 가능 영역의 길이의 합을 구하는 문제입니다. 이 문제에서 수신 가능 영역이 무엇인지를 설명드리겠습니다. 우선 위 문제의 예제 1번은 다음과 같습니다. 이제 이 센서들을 정렬해보겠습니다. 위의 그림과 같이 나옵니다. 이때 수신 가능 영역이란 아래의 그림과 같이 집중국을 세웠을 때 집중국들에 연결된 구역을 의미합니다. 위의 그림으로 예시를 들면 1 ~ 6까지 5에 7 ~ 9까지 2의 수신 가능 영역을 가져 총 7의 거리입니다. 이때 이 수신 가능 영역을 최소로 만들기 위해서는 두 점 사이의 거리가 가장 먼 곳을 제외하면 됩니다. 위의 그림에서는 3과 6의 거리의 차이가 6.. 2022. 8. 9.
백준 2437번 : 저울 java 이 문제는 누적합을 이용하여 해결하는 문제입니다. 이 문제를 풀기 위해서는 우선 입력받은 값들을 정렬합니다. 그리고 첫번째 숫자부터 차례대로 더해가면서 누적합을 만듭니다. 그리고 만약 i+1번 자리에 있는 수가 i번까지의 누적합에 1을 더한 값보다 크다면 누적합에 1을 더한 값은 만들 수 없습니다. 이는 i번까지의 누적합이 그 숫자까지 더했을 때 만들 수 있는 수의 최댓값이기 때문입니다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(S.. 2022. 8. 8.
백준 2146번 : 다리 만들기 java 이 문제는 bfs를 이용하여 한 섬에서 다른 섬까지의 최단 거리를 찾아서 다리를 만드는 문제입니다. 저는 이 문제를 풀기 위해서 우선 각각의 섬들을 나누었고 다른 섬에 접촉한다면 다리를 만들게 하였습니다. 이를 예제 1번을 예시로 간단히 보여드리겠습니다. 위의 그림과 같이 저는 우선 이 지도의 각각의 좌표들을 확인하여 연결된 부분들을 하나의 섬으로 묶은 다음 같은 섬에 속해있는 땅의 숫자를 같게 만들었습니다. 이후 각각의 섬에서 bfs를 실행하여 가장 먼저 자신의 섬과 다른 섬에 닿았을 때 다리를 건설하게 했습니다. import java.io.*; import java.util.*; public class Main { static int N, min = Integer.MAX_VALUE; static in.. 2022. 8. 8.
반응형