일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 겨울 부산
- JanusWebRTC
- python
- 깡돼후
- JanusGateway
- VARCHAR (1)
- preemption #
- tolerated
- 헥사고날아키텍처 #육각형아키텍처 #유스케이스
- k8s #kubernetes #쿠버네티스
- Value too long for column
- terminal
- Spring Batch
- table not found
- 달인막창
- 코루틴 빌더
- 자원부족
- mp4fpsmod
- 오블완
- PytestPluginManager
- PersistenceContext
- JanusWebRTCGateway
- 개성국밥
- pytest
- kotlin
- 코루틴 컨텍스트
- 티스토리챌린지
- JanusWebRTCServer
- taint
- vfr video
목록Algorithm/브루트 포스 (Brute-Force ) (14)
너와 나의 스토리
문제: https://www.acmicpc.net/problem/17135 문제 설명: n*m 크기의 격자판 안에 적이 존재 (칸당 적은 최대 한 명) 궁수는 3명 존재 n*m 격자판 밑에 줄에 존재 가능 궁수는 동시에 공격하고, 가장 가까운 위치에서 가장 왼쪽에 있는 적을 공격한다. 궁수들의 공격이 끝나면 적들은 한 칸씩 밑으로 이동한다. 적들은 궁수들이 있는 줄에 도달하면 소멸된다. 이 때, 궁수들이 공격으로 제거할 수 있는 적의 최대 수는? 문제 풀이: 1. n번째 줄에 궁수들을 각 각 어디에 놓을지 3중 포문을 통해 결정 -> mC3 2. 궁수들을 배치 후 적들의 위치와 공격 거리 제한을 고려하여 공격 가능한 적 결정 (모든 궁수들을 한번에 돌리고 겹치지 않는 적들 수만 카운트) ㄴ visit 배..
#include #include #include using namespace std; int n,cnt; long long sum; int main() { ios::sync_with_stdio(false); cin.tie(NULL), cout.tie(NULL); cin >> n; int t = n; while ((t/10) > 0) { cnt++; t /= 10; sum += cnt*(pow(10, cnt) - pow(10, cnt - 1)); } cnt++; sum += cnt * (n - pow(10, cnt - 1)+1); cout
문제: https://www.acmicpc.net/problem/1051 문제 풀이:- 모든 경우의 수 다 보면 됨 (x,y). .(x,y+k) (x+k,y). .(x+k,y+k) 이라고 할 때 가능한 (x,y)에 대하여 범위에 넘지않게 k를 다 넣어보고각 점의 값이 모두 같은 경우 크기 갱신해줌 * 크기 = (k+1)^2 소스 코드:https://gist.github.com/hovy1994/36e530e127bd04c3ace161622e313e6e#file-1051
문제: https://www.acmicpc.net/problem/1018 문제풀이:8*8로 짤랐을 때 수정해야할 부분이 최소인 체스판의 수정할 칸의 개수 구하기 - 검은색과 흰색을 번갈아 칠한 판을 미리 만들어 둠 * 검은색으로 시작하는 판의 반대는 흰색으로 시작하는 판이므로 하나만 만들면 됨 - 8*8로 자를 수 있는 모든 경우를 본다- 검은색으로 시작하는 판과 흰색으로 시작하는 판 각각 따로 비교해준다 * 처음에 예제1번이 맞는 모양인 줄 알고 왜 답이 1인가 했는데 가운데가 틀렸었음 ㅎㅎ 소스코드:https://gist.github.com/hovy1994/36e530e127bd04c3ace161622e313e6e#file-1018
문제: https://www.acmicpc.net/problem/1107 문제풀이: case1) 100번에서 +로 이동하는 경우, -로 이동하는 경우 -> result=abs(100-num);case2) num에서 ( + or - )로 이동해서 가능한 숫자까지의 거리 -> 도달한 가능한 숫자의 길이 더해줘야함 * 예외처리- 길이를 구할 때 while (tmp > 0) {len++;tmp /= 10;} 이런식으로 구했는데 tmp=0인 경우는 길이가 1이여야하는데 저 코드만 쓰면 길이가 0으로 처리됨 즉, if(tmp==0) len=0; 필요 소스코드:https://gist.github.com/hovy1994/36e530e127bd04c3ace161622e313e6e#file-1107
문제 : https://www.acmicpc.net/problem/7453 * 혼자서 못 품 ㅠㅅㅠ 다른 사람 블로그 보고 이해했다. 문제 풀이:- n이 최대 4000이므로 단순하게 포문을 이용해 다 계산하면 시간 초과가 난다- a, b, c, d를 한번에 계산해서 합이 0인지 판단하는 것이 아니라 가능한 (a, b), (c, d)쌍의 값을 각각 모두 더하고 각 쌍의 합이 0인 것들의 개수가 답이 된다. for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {v.push_back(arr[i][2] + arr[j][3]); // (c,d)의 합 모두 구하기}} * 처음에는 o . . o . o 꼴로만 구할 수 있고 o . 이런꼴은 못 구하는거 아닌가라는 생각..