package studyGroup.may.may20; // https://www.acmicpc.net/problem/11000 /* https://velog.io/@jkh9615/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%B0%B1%EC%A4%80-11000-%EA%B0%95%EC%9D%98%EC%8B%A4-%EB%B0%B0%EC%A0%95-Java 시작시간순으로 오름차순 정렬 (시작시간이 같다면 종료시간을 오름차순으로 정렬) 정렬된 시간들 중 첫번째 종료시간을 우선순위큐에 넣는다. 배열의 두번째 값부터 순회하면서 시작시간의 우선순위큐에 시간보다 작거나 같으면 우선순위큐에서 뺀다. 순회하면서 현재의 end를 우선순위에 넣는다. 우선순위큐에 남아있는 데이터의 갯수가 필요한 강..
문제출저 : https://programmers.co.kr/learn/courses/30/lessons/12971 코딩테스트 연습 - 스티커 모으기(2) N개의 스티커가 원형으로 연결되어 있습니다. 다음 그림은 N = 8인 경우의 예시입니다. 원형으로 연결된 스티커에서 몇 장의 스티커를 뜯어내어 뜯어낸 스티커에 적힌 숫자의 합이 최대가 되도록 programmers.co.kr import java.util.*; class Solution { public int solution(int sticker[]) { int answer = 0; int n = sticker.length; if(n == 1) return sticker[0]; int[] dp1 = new int[100001]; // 처음을 붙였을 경우 ..
문제출저 : https://programmers.co.kr/learn/courses/30/lessons/86053 코딩테스트 연습 - 금과 은 운반하기 어느 왕국에 하나 이상의 도시들이 있습니다. 왕국의 왕은 새 도시를 짓기로 결정하였습니다. 해당 도시를 짓기 위해서는 도시를 짓는 장소에 금 a kg과 은 b kg이 전달되어야 합니다. 각 도시에는 programmers.co.kr 소스코드 : /* a : 필요한 금 b : 필요한 은 g : i번 도시가 보유한 금 s : i번 도시가 보유한 은 w : i번 트럭이 옮길 수 있는 양 t : i번 트럭의 편도 운행시간 1e9 = 1 * 10의 9승 옮겨야 할 금의 양 = 10의 9승 옮겨야 할 은의 양 = 10의 9승 총 옮겨야 할 양 = 2 * 10의 9승 ..
스프링부트 프로젝트를 AWS로 배포해 보겠습니다. 순서 1. SpringBoot 프로젝트를 .jar 파일로 build 한다. 2. FileZila를 통해 jar 파일을 EC2로 전송한다. 3. EC2에 자바를 설치한 후 jar 파일을 실행한다. RDS 엔드포인트 복사 AWS에 RDS로 이동 연결 & 보안에서 엔드포인트를 복사한다. HeidiSQL 을 통해 AWS RDS 접속, DB 생성 HeidiSQL MySQL, MariaDB, MSSQL 를 통합적으로 관리할 수 있는 오픈소스 소프트웨어이다. HeidiSQL을 사용하면 터미널 접속 없이 관리할 수 있다. HeidiSQL을 다운받은 후 실행 신규로 새로운 세션 생성 호스트명 / IP : RDS의 엔드포인트 사용자 : RDS 생성할 때의 아이디 암호 : ..
배포할 스프링부트 프로젝트에 연동할 DB를 AWS 생성해보겠습니다. DB는 MariaDB를 선택했습니다. AWS RDS란? 아마존 관계형 데이터베이스 서비스(Amazon Relational Database Service)로 관계형 데이터베이스를 제공하는 서비스이다. MySQL, MariaDB, PostgreSQL, SQLServer 등 데이터베이스를 직접 운영하지 않고 AWS에 대행할 수 있다. 애플리케이션 내에서 관계형 데이터베이스의 설정, 운영, 스케일링을 단순하게 하도록 설계된 클라우드 내에서 동작하는 웹 서비스이다. 데이터베이스 소프트웨어를 패치하거나 데이터베이스를 백업하거나 시점 복구를 활성화하는 것과 같은 복잡한 관리 프로세스들을 자동으로 관리한다. AWS RDS 생성 AWS 로그인 RDS 데..
문제출저 : https://www.acmicpc.net/problem/1451 1451번: 직사각형으로 나누기 첫째 줄에 직사각형의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 직사각형에 들어가는 수가 가장 윗 줄부터 한 줄에 하나씩 M개의 수가 주어진다. N과 M은 50보다 작거나 같은 자연수이 www.acmicpc.net 소스코드 : package studyGroup.may.may17; import java.util.*; import java.io.*; /* 3개의 직사각형으로 나눌 수 있는 경우의 수는 6가지 가로3개 세로3개 ㅏ ㅓ ㅗ ㅜ 누적합을 활용 나누어진 직사각형의 합을 구한다. 6가지 모양의 경우의 수를 종합해 가장 큰 값을 출력 수의 범위가 int를 넘기 때문에 long으로 ..
문제출저 : https://www.acmicpc.net/problem/2616 2616번: 소형기관차 첫째 줄에 기관차가 끌고 가던 객차의 수가 입력된다. 그 수는 50,000 이하이다. 둘째 줄에는 기관차가 끌고 가던 객차에 타고 있는 손님의 수가 1번 객차부터 차례로 입력된다. 한 객차에 타고 있 www.acmicpc.net 소스코드 : package studyGroup.may.may16; import java.util.*; import java.io.*; /* 소형기관차 3대로 최대로 운송할 수 있는 손님 수를 출력 https://velog.io/@leeinae/Algorithm-%EB%B0%B1%EC%A4%80-2616-%EC%86%8C%ED%98%95%EA%B8%B0%EA%B4%80%EC%B0%..
문제출저 : https://www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 소스코드 : package studyGroup.may.may15; import java.util.*; import java.io.*; /* 중간값 말하기 짝수라면 두 수 중에 작은 수 100,000을 매번 정렬하면 N * N * logn 시간초과가 발생한다. 최대힙과 최소힙을 이용한다. 우선순위큐 https://gh402.tistory.com/32 */ public c..
문제출저 : https://www.acmicpc.net/problem/2306 2306번: 유전자 DNA 서열은 4개의 문자 {a,c,g,t} 로 이루어진 문자열이다. DNA 서열에는 생명의 신비를 풀 수 있는 많은 정보가 들어 있다. 특히 KOI 유전자의 길이는 사람의 키와 깊은 상관 관계가 있다는 것이 알려 www.acmicpc.net 소스코드 : package studyGroup.may.may14; import java.util.*; import java.io.*; /* 1. 가장 긴 KOI 유전자 길이 출력 2. 없을 때는 0을 출력 KOI 1. at gc 2. aXt gXc 3. XY dp[l][r] l번부터 r번까지 KOI 유전자의 최대 길이 3번 규칙 -> dp[l][k] + dp[k+1][..
문제출저 : https://www.acmicpc.net/problem/14462 14462번: 소가 길을 건너간 이유 8 존 (우리가 지금까지 도와 주었던 존과는 다른 인물이다)의 농장에는 N 종류의 소가 있다. 각각 1번 종, 2번 종, ..., N번 종 (1 ≤ N ≤ 1000)이다. 만약 |a−b| ≤ 4라면 a번 종과 b번 종의 소는 친하지만 www.acmicpc.net 소스코드 : package studyGroup.may.may13; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; /* dp dp[i][j] 는 i와 j를 검사할 때 횡단보도 최..
문제출저 : https://www.acmicpc.net/problem/2887 2887번: 행성 터널 첫째 줄에 행성의 개수 N이 주어진다. (1 ≤ N ≤ 100,000) 다음 N개 줄에는 각 행성의 x, y, z좌표가 주어진다. 좌표는 -109보다 크거나 같고, 109보다 작거나 같은 정수이다. 한 위치에 행성이 두 개 이 www.acmicpc.net 소스코드 : package studyGroup.may.may12; import java.io.*; import java.util.ArrayList; import java.util.StringTokenizer; import java.util.*; /* 모든 정점을 최소 비용으로 연결 MST(최소 스패닝 트리) 유형 크루스칼 알고리즘 간선의 갯수 : 10만..
출저 : https://www.acmicpc.net/problem/17425 17425번: 약수의 합 두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더 www.acmicpc.net 소스코드 : package studyGroup.may.may9; import java.util.*; import java.io.*; public class 약수의합17425 { static int t; static long[] board; static long[] boardSum; public static void main(Strin..