문제 풀이 가장 긴 바이토닉 부분 수열은 증가하는 부분수열과 감소하는 부분 수열을 합친 것(?) 중에 가장 긴 것을 구하는 것이므로 가장 긴 증가하는 부분 수열과 가장 긴 감소하는 부분 수열을 합친 문제다. 1) 가장 긴 증가하는 부분 수열 https://www.acmicpc.net/problem/11053 2) 가장 긴 감소하는 부분수열 https://www.acmicpc.net/problem/11722 가장 긴 증가하는 부분 수열은 아래의 포스트에 설명되있다. https://deonggideok.tistory.com/25 [C++] 백준 11053 가장 긴 증가하는 부분수열 문제 풀이 가장 긴 증가하는 부분수열은 LIS(Longest Increasing Sequence)로 매우 유명한 알고리즘이다. ..

1.문제 https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 2. 풀이 가장 긴 증가하는 부분수열은 LIS(Longest Increasing Sequence)로 매우 유명한 알고리즘이다. DP를 이용하는 문제는 매번 어렵다. 문제에는 두가지 배열이 있다. 숫자들의 나열이 담긴 배열 현재 인덱스에 해당하는 숫자까지의 LIS를 저장하는 배열 문제에서 2)의 배열에서 이전까지..
1. 문제 https://www.acmicpc.net/problem/2981 2981번: 검문 트럭을 타고 이동하던 상근이는 경찰의 검문을 받게 되었다. 경찰은 상근이가 운반하던 화물을 하나하나 모두 확인할 것이기 때문에, 검문하는데 엄청나게 오랜 시간이 걸린다. 상근이는 시간 www.acmicpc.net 2. 풀이 숫자들이 여러개 입력 될 때 각 숫자는 n = a * x + r(x는 나누는 수, a는 몫, r은 나머지)로 표현 할 수 있다. A, B, C,.... 이렇게 숫자가 오름차순을 나열 되어있다고 할 때, 각 숫자들은 a * x + r, b * x + r, c * x + r....로 표현 될 수 있고 r = A - a * x = B - b * x A - B = x * (a - b) 로 근접한 두..
DI란 OOP 프로그램의 방법론, 외부에서 생성한 객체를 주입하는 것 모듈화를 통해 프로그램의 재사용성을 높이고 유지보수성을 향상시킨다. 방법 생성자를 이용한 의존 객체를 주입 생성자에서 한 번 정한 후 변경이 불가능 public class Car(){ private Wheel wheel; public Car(){ wheel = new CarWheel(); } } setter를 이용한 의존 객체 주입 값을 변경 할 수 있다 public class Car(){ private Wheel wheel; public Car(){ } public void setWheel(Wheel wheel){ this.wheel = wheel; } } 생성자와 setter를 이용한 의존 객체 주입 가장 많이 쓰는 방법 값을 변경..
1. 문제 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 2. 풀이 큐에 출력 해야 하는 순서를 넣고, 스택에 수들을 넣었다 빼며, 답을 넣는다. 숫자들은 오름차순으로 스택에 들어가므로 현재 스택에 들어갈 숫자를 변수로 잡아 이를 증가시키며 스택에 숫자를 넣는다. while문을 통해 큐의 원소가 없을 때 까지, 즉 모든 숫자를 출력할 때 까지 아래의 과정을 반복..

Maven pom.xml 파일을 이용해 라이브러리를 연결해주고 빌드 해주는 플랫폼 pom.xml에 따라 필요한 파일을 다운로드해서 사용한다 Maven 프로젝트 만들기 Maven 프로젝트 선택하고 만들기 GroupId, ArtifactId 설정하기 GroupId는 자신의 프로젝트를 식별해주는 아이디로 프로젝트에서 사용하는 도메인 이름과 동일하게 해야한다. ArtifactId는 버전 정보를 생략한 이름으로 프로젝트 이름과 동일하게 입력해야한다 프로젝트 이름 설정 후 실행 ArtifactId와 동일한 이름으로 프로젝트를 만든다 pom.xml pom.xml에서 사용하는 모듈을 정의한다 스프링을 사용하기 위해 pom.xml에 위와 같이 입력한다. Maven 프로젝트 파일 구조 java: 자바 코드를 구현해 저장하..
BufferedReader, BufferedWriter은 Buffer에 있는 IO 클래스다. 이름과 같이 버퍼를 이용해서 입출력을 하는 함수로 입출력의 효율이 좋아진다. BufferedReader Scanner을 이용한 경우, 스페이스, 엔퍼를 경계로 입력 값을 인식한다. 데이터를 가공할 필요가 없어 사용하기가 편리하다. BufferedReader은 엔터만 경계로 인식하고 입력받은 데이터는 String으로 고정된다. 그래서 데이터를 가공해야 하는 경우가 많다. import java.io.*; class Ex{ public static void main(String[] args){ BufferedReader br = new BufferedReader(new InputStreamReader(System.in..
1. 풀이 큐 내 문서를 이동할 때 마다 인덱스가 변하므로 처음 입력받은 문서의 인덱스를 중요도와 함께 저장한다.(queue) 현재 있는 문서들 중 중요도가 높은 것 부터 출력해야 하는데 큐 자료구조 상 먼저 넣은 것이 먼저 출력되므로 중요도를 역순으로 큐에 넣는다.(queue numbers). 중요도에 따른 카드수를 저장한다.(int cardNum[10]) 큐가 빌 때 까지 큐의 첫 원소를 꺼내서2) 그렇지 않은 경우 큐의 뒤에 다시 넣는다. 1) 남은 카드들의 중요도 중 가장 높은 경우 카드 수와 중요도를 갱신 +) 꺼낸 원소가 답일 경우 -> 결과를 리턴하며 종료한다 2. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26..
- Total
- Today
- Yesterday
- ESP8266
- BFS
- java
- dovecot
- 블루투스
- 아두이노
- 백준
- 구슬 탈출2
- dht11
- FTP
- 라즈베리파이
- the pads
- 메일서버
- 프로그래머스
- 11503
- DP
- mysql
- 2981
- 스티커모으기2
- 자바
- git
- 합승 택시 요금
- c++
- 라즈비안
- 집배원 한상덕
- hackerrank
- 리눅스
- hc-06
- 워드프레스
- 키 순서
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |