일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- javac
- JIT
- pg_hba.conf
- Operating System
- StackArea
- 상속관계
- 포함관계
- 바이트코드
- 제네릭스
- MethodArea
- generics
- RDD
- 이노베이션아카데미
- 42seoul
- la-piscine
- HeapArea
- 42서울
- 운영체제
- 도커네트워크
- 참조변수
- java
- jdk
- 라피신
- Compiler
- SRP
- 자바컴파일러
- LSP
- abstract
- classloader
- JVM
- Today
- Total
목록CS/baekjoon (71)
while(1) 작심삼일();
https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 풀이) 1. 문자열을 숫자들로 분해하였다. ex) 55-50+40 -> 55, -50, 40 2. -로 시작한다면 vector범위내에서 +가 나오면 -혹은 범위가 안될 때 까지 계속 sum에 누적시킨다(첫번째 음수는 양수로 변환시킴) 3. sum에 -1을 곱해서 음수로 만든다. 4. ans에 더한다. (* 문자열문제를 풀어본 경험이 없어서 string도 찾아보느라 오래걸렸고 코드가 너무 지저..
https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 풀이) queue 라이브러리를 사용하려했으나 idx접근하는 메소드가 없어서 vector로 구현했다. 문제에서 요구한 내용을 하나씩 구현해서 해결할 수 있었다. 알아내려는 인덱스가 맞고, 뒤에 나보다 큰 것도 없으면 멈추고 그 당시의 cnt값을 출력해주면 된다. #include #include using namespace std; int T; int main() { ios::sync_with_stdio..
https://www.acmicpc.net/problem/2559 2559번: 수열 첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기 www.acmicpc.net 풀이) 아무생각없이 풀면 O(N^2)으로 시간초과가 난다. 투포인터 개념을 이용하여 초기에 배열을 K 사이즈만큼 잡아놓고 범위에 맞춰서 하나씩 빼고 더해주는 방식으로 O(N)으로 해결해야한다. #include using namespace std; int N, K, s = 0, sum = 0, ans = 0; int arr[100001]; int main() { ios::sync_wit..
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 풀이) 스택의 개념을 이용하여, 만들어야하는 첫번째 idx 값이 될때까지 스택에 값을 넣고 만들어야할 값을 찾으면 값을 빼주고 그 다음 만들값을 찾으면 된다. 여기서 오름차순으로 들어가기때문에 그 다음값은 방금 뺀 값보다 1작은 값이 스택의 맨 위에 위치해있는데 이 경우가 아니면 무조건 만들 수 없는 경우이기에 bo..
https://www.acmicpc.net/problem/2470 2470번: 두 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00 www.acmicpc.net 풀이) 투포인터 알고리즘을 이용하여 좌우합의 절댓값비교를 하며 조건에 맞는 경우 저장해두고, 범위를 좁혀가면 된다. 이미 0을 만들어버리게 되면 바로 break문을 통해 빠져나오게 구현하였다. #include #include using namespace std; int N, sum = 0, ans = 2e9 + 1, ans_left, ans_right; int a..
https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 풀이) 기본적인 bfs문제였다. 처음 익은 토마토들을 큐에 넣고 상하좌우위아래를 잡고 안익으면 거면 큐에 넣어주고 큐가 빈 시점에서 다 채워졌다면 시간을 출력하면 된다. #include #include using namespace std; queue q; int N, M, H; int dir_x[6] = {1, -1, 0, 0, 0, 0}; int dir_y[6] = {0,..