일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 재귀함수
- 15353
- 서울에서경산까지
- sw expert academy
- BOJ14889
- Crossfit
- 1781
- Python
- 동적프로그래밍
- 15662
- 해시해킹
- Flutter
- 회전하는큐
- 백준
- 재귀
- D1
- BOJ
- DP
- 스택
- 크로스핏
- 삼성
- C++
- 그리디
- 4811
- spring boot
- 14863
- 1로만들기2
- 26008
- dart
- 브루트포스
- Today
- Total
목록Coding Test/C++ (56)
곧죽어도 콛잉

https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 진짜 .. 생각 한번만 제대로 하면 쉬운 문제인데 ... 이 문제는 다 필요 없고 마이너스가 한번이라도 나온다면, 그 이후의 값들은 그냥 전부 더해서 빼주면 된다. 이것만 알면 정말 쉽게 접근할 문제 ㅠㅠ 이걸 모르면 인덱스 꼬이고 난리도 아니다.. #include using namespace std; string s; int len, res, tmp; bool flag; int main()..

https://www.acmicpc.net/problem/4811 4811번: 알약 입력은 최대 1000개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄이며, 병에 들어있는 약의 개수 N ≤ 30 가 주어진다. 입력의 마지막 줄에는 0이 하나 주어진다. www.acmicpc.net 이번 문제도 전형적인 dp문제. 상태값을 잘 생각해보면 2가지. 병안에 한조각 짜리 개수와, 병안에 반조각짜리 개수를 기준으로 세가면 끝. 종료 조건은 병안에 한조각짜리도, 반조각짜리도 없으면 즉시 종료! W,H에 흔들리지 말고 직접 경우의 수를 완전탐색 방식으로 몇개만 세봐도 간단하게 해결된다 현재 상태에서 1번 선택 혹은 2번 선택을 이어나간다. 즉 종료조건에 도달할때는 그 경로가 유일하다!! #include..

https://www.acmicpc.net/problem/12852 12852번: 1로 만들기 2 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 자연수 N이 주어진다. www.acmicpc.net 이번 문제는 그냥 dp하나만 보면 간단하게 풀릴 수 있었는데 .. 최소값을 구하는 것 뿐만 아니라 최솟값이 나오기까지의 과정도 보여줘야한다. 즉, dp 진행 중, 중간의 값들을 계속해서 "Tracing" 해야한다. 다행스럽게도, 잘 생각해보면 특정값 X는 최소의 연산횟수를 보장하는 경로가 단 한가지 연산 밖에 없다. (여러 경로가 있지만, 그럼에도 최선의 선택은 1개뿐.) 예를 들어, 10의 경우는 9, 9의 경우는 3, 3의 경우는 1이 전부다. 10 9 3 1 즉 이것을 새로운 DP의 값으로 보여줄..

https://www.acmicpc.net/problem/2342 2342번: Dance Dance Revolution 입력은 지시 사항으로 이루어진다. 각각의 지시 사항은 하나의 수열로 이루어진다. 각각의 수열은 1, 2, 3, 4의 숫자들로 이루어지고, 이 숫자들은 각각의 방향을 나타낸다. 그리고 0은 수열의 마 www.acmicpc.net 이 문제도 이전에 풀었던 DP와 같은 유형!! 값을 거꾸로 타고 올라가면서 계속해서 값을 갱신해나가면 된다! 계속해서 dp 배열에 넣는 논리는 똑같은데, dp에 저장할 상태값은 현위치, 왼발위치, 오른발위치로 정의해줄 수 있다. 그리고 추가적으로 가해지는 힘이 달라지는 부분 구현은 최대한 간단한 것부터 구현해나가면 편하다. po 함수를 유심히보자! #include..

https://www.acmicpc.net/problem/14863 14863번: 서울에서 경산까지 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 두 자연수 N과 K가 공백으로 분리되어 주어진다(3 ≤ N ≤ 100, 0 < K ≤ 100,000). 두 번째 줄에는 구간 1을 도보로 이동할 때 걸리는 시간(분), 이 www.acmicpc.net 기본적인 dp 문제! 먼저 시간복잡도만 계산해보면 100개의 구간 각각이 2개씩 가능하므로, 2^100이라는 큰 수가 나온다. 따라서 DP를 써야할 수 밖에 없다. 그래프를 진행할수록 반드시 필요한 2가지 상태값이 있다. 1. 현재 구간 위치 2. 지금까지의 소요시간 이것을 바탕으로 해당 경로가 가질 수 있는 최대값을 유추할 수 있다. 다음처럼 그래프를 그..

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 모르면 한도끝도 어려운 LCS 문제! DP에 속하지만 따로 분류해서 공부하도록한다. 우선 O(N^2) 풀이부터 풀어보자. 이 부분은 코드 이해가 어려워서 그림으로 표현해봤다. 우선, 이 문제는 값을 저장할 배열 arr과, 현재 LCS 상태를 저장하는 cnt 배열이 필요하다. 값 하나를 볼때마다 LCS를 계속 업데이트해가..