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

https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 회전하는 큐 문제라고 생각하면 매우 쉬워진다! 그냥 rotate를 사용하면 끝! 다만 파이썬에서 사용하는 출력이 매우 불편했다..... 무조건 줄바꿈이 되는 print는 불편해... 그래서 다른 사람들의 프린트하는 부분의 코드만 봐봤다. from collections import deque N, K = map(int, input().split()) dq = deque([i+1 for i in range(N)]) arr = [] while(len(dq)>0): dq.rotate(-(K-1)..

https://www.acmicpc.net/problem/26008 26008번: 해시 해킹 첫째 줄에 비밀번호의 길이 $N$과 문자 종류의 개수 $M$, 정수 $A$가 주어진다. ($1 \le N, M, A \le 5\,000\,000$) 둘째 줄에 재현이가 알아낸 해시값 정수 $H$가 주어진다. ($0 \le H < M$) www.acmicpc.net 해시해킹 문제... 중복순열로 풀려고 했는데 안된다.,, 이건 수학적 지식이 필요한 부분! 일단 코드만 보면 어이없다.. M^N-1가 정답이다. n,m,a = map(int, input().split()) print(pow(m, n-1, 1000000007))

https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 간단한 문제다. python의 deque에 존재하는 rotate 함수를 사용하면 끝! 찾으려는 수가 해당 queue에서 어느 위치에 있는지 확인하고, 어느 방향으로 돌릴지만 결정하면 끝난다! 왼쪽은 +1, 오른쪽은 -1 로 표현해주면 된다. import sys from collections import deque input=sys.stdin.readline def solution(nums, t..

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의 값으로 보여줄..