일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- upper_bound
- OFFSET
- 백트래킹
- 소프티어
- compose
- BFS
- boj #19237 #어른 상어
- Kafka
- 퇴사통보
- msSQL
- 13908
- 처우산정
- incr
- 파라메트릭
- dfs
- 연결요소
- 경력
- 물채우기
- softeer
- BOJ
- 이분탐색
- 6987
- @P0
- 처우협의
- 매개변수탐색
- 오퍼레터
- Docker
- 성적평가
- 기술면접
- 백준
- Today
- Total
목록알고리즘 문제/BOJ (413)
기술 블로그
https://www.acmicpc.net/problem/16235 삼성 SW 역량 테스트 기출문제이다. 이 나무 재테크 문제의 풀이를 두 번 업로드 한 적이 있으나, 시간 제한이 0.3초로 단축되면서, 내 코드가 시간 초과를 받게 되었다. 그래서 다시 풀어보았다. 시간 초과의 내 코드는 봄, 여름, 가을, 겨울을 모두 이중 for문을 활용하여 각각에 적용하고 있었다. 즉, 이중 for문 4개를 사용하였었다. 하지만 시간을 줄이기 위해서는 어떤 사건과 또 다른 사건은 서로에게 영향이 없는걸 활용해야한다. 즉, 이중 for문 2개로 구현이 가능하다. 예시) 죽은 나무의 칸에 양분을 더하는 것이랑 각 칸에 추가될 양분(A[행][열])을 더하는 것은 서로 영향의 미침이 없다. 또한, 다른 위치에 영향도 없다...
https://www.acmicpc.net/problem/11104 2진수를 10진수로 변환하는 문제이다. 문자열로 입력받는다. 12345678910111213141516171819202122232425262728293031323334353637383940414243#include #include #include #include #include #include #include #include #include #include #include #include #include #pragma warning(disable:4996) #pragma comment(linker, "/STACK:336777216") using namespace std; int main(void){ int n = 0; scanf("%d"..
https://www.acmicpc.net/problem/2292 최댓값 : 3*n*n - 3*n + 1 1234567891011121314151617181920212223242526272829303132333435363738394041424344#include #include #include #include #include #include #include #include #include #include #include #include #include #pragma warning(disable:4996) #pragma comment(linker, "/STACK:336777216") using namespace std; /*1 → 총 1개, 최소 = 최대 = 12 → 총 6개, 최소 = 2, 최대 = 73..
https://www.acmicpc.net/problem/17140 사실 처음에 틀릴 줄 알았는데, 맞았다. 시간에 따른 Map 배열을 출력하면서 어디가 잘못 출력되는지, 어디를 실수했는지 등등 생각하면서 구현하였다. 그리고 코드가 좀 더러워 보이는건 기분 탓일 수도 있다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171..
https://www.acmicpc.net/problem/4677 처음에 영어 해석을 이상하게 하는 바람에 처음 제출할 때, 틀렸다 떴다. 나는 처음에 @가 아래로 내려온 다음, 연결 요소의 개수를 구하는 것인 줄 알았다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970#include #include #include #include #include #include #include #include #include #include #include #include #include #pragma warning(disable:4..
https://www.acmicpc.net/problem/17144 요즘 SW 역량 테스트에 자주 등장하는 유형인 시뮬레이션 문제이다. 딱히 알고리즘의 사용없이 그냥 문제 그대로 구현하면 된다. 나는 생각보다 빠르게 풀고, 예제들을 입력해보았는데 모든 예제들의 답이 188로 일정하게 나왔었다. 그래서 처음에는 12345diffusion[i][j] += dust[i][j] - (dust[i][j] / 5) * cnt; 또는 diffusion[i][j] += dust[i][j] - (dust[i][j] * cnt) / 5;cs 위에 있는 것 중 아래 것을 생각을 했으나, 문제를 읽어보니 그게 아니었다.(위의 것이 맞음) 그래서 마음을 가다듬고(?), 천천히 생각해보니 air() 함수 내의 67번 째 줄 코드..
https://www.acmicpc.net/problem/16943 기본적인 백트래킹 문제이다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869#include #include #include #include #include #include #include #include #include #include #include #include #include #pragma warning(disable:4996) #pragma comment(linker, "/STACK:336777216") using namespace std; str..
https://www.acmicpc.net/problem/16987 전형적인 백트래킹 문제이다. 75번 째 줄 코드를 생각하지 못 했다. 나머지 코드는 역시 모두가 비슷한 논리로 코드를 작성하였다.(75번째 줄 빼고) go 변수의 역할은 현재 계란으로 다른 계란을 치려고 할 때, 깨지지 않은 계란이 없으면 그냥 현재에서 다음의 계란을 호출하는 역할이다. 참고로 백준님의 강의를 수강하고 있는데, 그 코드도 참고하였다. 거의 비슷하게 구현하였다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787..