일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- boj #19237 #어른 상어
- 파라메트릭
- 오퍼레터
- 백트래킹
- 퇴사통보
- 성적평가
- OFFSET
- 경력
- 소프티어
- 백준
- msSQL
- @P0
- dfs
- 기술면접
- 13908
- BOJ
- 매개변수탐색
- Kafka
- Docker
- 6987
- BFS
- 처우산정
- 이분탐색
- upper_bound
- softeer
- 연결요소
- 처우협의
- incr
- compose
- 물채우기
- Today
- Total
목록전체 글 (633)
기술 블로그
https://www.acmicpc.net/problem/16939 https://codeforces.com/contest/887/problem/C 처음에 bool check() 함수 내에서 return false; 하기 전에 init()을 안 해줘서 틀렸었다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912..
https://www.acmicpc.net/problem/17130 다시 풀어볼 문제이다. 복습! 다이나믹 프로그래밍 난이도는 어려웠다. 다른 분의 코드를 참고하여 힌트를 얻어가며 구현하였다... 더 노력해야겠다. 배열의 크기가 크다.(예 : 1000 * 1000), 어느 한 쪽의 방향으로 가는 것 같다. → dp(다이나믹 프로그래밍)인지 생각해 볼 것. dp 배열도 -1로 초기화하는 것이 좋다. 0으로 초기화하고, 토끼 위치를 1로하면 답을 출력할 때 ans - 1로 해야하는데 탈출을 못 할 때에는 -2가 돼버려, 또 다른 bool 같은 변수를 활용해야한다. 초기 나의 코드는 시간 초과코드이다. 1000 * 1000 배열을 재귀함수로 돌리니 당연히.. 코드를 구현하는데 얻은 힌트를 첨부하겠다.숫자는 순..
https://www.acmicpc.net/problem/1342 next_permutation()을 활용하면 된다. 물론 정렬된 상태여야만 한다. 또한, 정렬된 상태도 검사해야하므로, do while문으로 해야한다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748#include #include #include #include #include #include #include #include #include #include #include #include #include #pragma warning(disable:4996) #pragma comment(linker, "/STACK:336777216"..
https://www.acmicpc.net/problem/15663 중복을 제거 → exist 배열 활용 각 숫자들에 대한 배열을 활용 → num[n]→ num 배열. 이 때, 인덱스(n)가 그 숫자이다. 배열 값 자체는 n이 몇 번 등장했는지 기록. 그리고 MIN부터 MAX까지 백트래킹하면 된다.(오름차순 때문에 작은 숫자부터 큰 숫자까지 for문) 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374#include #include #include #include #include #include #includ..
https://www.acmicpc.net/problem/17135 계속 제출해봐도 틀렸습니다가 뜨길래, 뭐가 문제인가 했었다. 생각해보니 내가 처음에 문제에 접근하였을 때는 문제 조건의 같은 적이 여러 궁수에게 공격당할 수 있다라는 조건을 읽고, '최대'로 죽일 수 있는 적이라면, 당연히 1:1로 적을 죽여야 최댓값이 나올 수 있으니, 무시해도 되겠지라는 생각으로 구현했었다. 즉, 죽인 적을 즉시 0으로 바꿔주고, 다음 궁수가 무조건 다른 적을 죽일 수 있도록 구현하였었다. 그래서 위의 조건을 있는 그대로 그냥 받아드려서, 구현하고 제출하였더니 맞았다. 참고) 난 아래처럼, 죽일 적을 저장하고있었는데 123456if (dist
https://www.acmicpc.net/problem/3184 난이도는 매우 쉬웠다. 문제 유형은 BFS로 되어있길래 BFS보다는 DFS가 더 시간 줄일 수 있을 것 같아서 DFS로 풀었다. 처음에 60번 째 줄을 if(!visit[i][j] && Map[i][j] == '.') 라고 작성했었는데 바로 생각해보니 3 3.#o.#v.## 라는 반례가 있었다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273#include #include #include #include #include #include #inc..
https://www.acmicpc.net/problem/17128 처음에 2중 for문으로 한 번 제출해봤는데 역시나 200,000라서 시간 초과가 떴다. 시간 초과 후 2중 for문을 안 쓰려고 했다. 예제를 활용하여 풀었다. 핵심은 vector와 배열의 인덱스를 활용하는 것이다. total 변수도 활용한다. 숫자는 배열의 인덱스sum A 1 1 2 3 4 2 2 3 4 5 3 3 4 5 6 4 4 5 6 7 5 5 6 7 8 6 6 7 8 1 7 7 8 1 2 8 8 12 3 4 숫자는 인덱스떼어낼 인덱스(A 배열) 떼어낼 인덱스를 포함하는 sum 배열 1 1 6 7 8 2 2 1 8 7 3 3 2 1 8 4 4 3 2 1 5 5 4 3 2 규칙 : 떼어낼 인덱스를 k라고 하면, k--씩 감소하여 ..
https://www.acmicpc.net/problem/17127 예제 172 5 3 1 4 2 3 2 + 5 + 3 + (1 * 4 * 2 * 3) index= 0 1 2 3 4 5 6vector vc = {2, 5, 3, 1, 4, 2, 3}; '+'로 활용하려 할 때만, true가 되고, index를 활용한다. use[0] = true;use[1] = true;use[2] = true; 가 되어버리고,(덧셈이므로 add 변수에 저장) 나머지는 곱셈이다.(mul 변수에 저장) 주의할 점은 곱셈은 '연속'으로 나와야한다. 덧셈은 무조건 3개가 되어야 하고 곱셈은 전체(=N) - 3개가 되어야 한다. 곱셈의 개수(used[i]가 false인 것의 개수)가 N - 3개가 아니면 return 해버린다. 정..