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

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/25556 25556번: 포스택 포닉스가 순열을 청소할 수 있으면 YES, 불가능하다면 NO를 출력한다. www.acmicpc.net 오랜만에 올리는 포스팅 ㅎㅎ 블로그 쉬지 않고 열심히 올려보자아~ 위 문제는 직접 손으로 그려보면서 "되는 경우"를 찾는게 매우 쉽다. 규칙은 딱 2가지다. 1) 4개의 stack 중 한개라도 비어있지 않은 상황일때, 비어있지 않은 그 stack의 top보다 지금 넣으려는 숫자가 반드시 커야한다. 2) 만약 넣으려는 숫자가 작다면, 반드시 비어있는 stack에 넣어야한다. 3) 만약 비어있는 stack이 존재하지 않는다면, 그 배열은 청소가 불가능하다. # -*- coding: utf-8 -*- import sys ..

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