일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 시뮬레이션
- 슈퍼컴퓨터클러스터
- DP
- Calibration
- BFS
- DenseDepth
- 순서대로방문하기
- 코드트리빵
- 소프티어
- 왕실의기사대결
- 나무박멸
- 조합
- ARM
- 루돌프의반란
- 이진탐색
- 구현
- 마법의숲탐색
- 포탑부수기
- 코드트리
- dfs
- 싸움땅
- 수영대회결승전
- 백준
- ICER
- 토끼와 경주
- 삼성기출
- 3Dreconstruction
- ros
- ISER
- 마이크로프로세서
- Today
- Total
목록알고리즘 (44)
from palette import colorful_colors
접근방법1. 조합짜기먼저 주사위 중 A가 굴릴 주사위를 정할 조합을 짠다. 그러면 B가 굴릴 주사위도 자동으로 정해진다.A가 선택한 주사위는 aSelected가 1이고, B가 선택한 주사위는 aSelected가 0이다. → 재귀 이용, makePath 함수 2. 해당 조합마다 굴리는 경우 구하기A가 굴리는 주사위의 합, B가 굴리는 주사위 합만 알면 되므로, (6^N) 이 아닌 (6^N/2) 를 두 번 구해주면 된다.굴리는 주사위의 합들을 각각의 DAT에 저장하고, 나중에 비교를 위해 합이 나오는 경우의 수를 aCase, bCase에 저장한다. → 재귀 이용, roll함수 3. 해당 조합에서 A가 이기는 경우의 수 구하기 비교시 시간복잡도를 줄이기 위해 aCase, bCase를 오름차순 정렬, 중복..
https://softeer.ai/practice/6252 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai언어: C++, 시간: 36ms 접근방법N이 크기 때문에 시간 최적화가 필요하다. 난 이진탐색의 업그레이드 버전인 Parametric search(매개변수 탐색)을 이용했다. 1. 문제에서 가능한 정답의 범위(최선의 최소 컴퓨팅 성능): 성능이 가장 낮은 컴퓨터 ~ 성능이 가장 높은 컴퓨터 + B의 루트 값 2. 최선의 최소 컴퓨팅 성능이 num일 때 예산 안에서 업그레이드가 가능한지 판별하는 함수 isPossible을 만들어준다!이후 가능한 정답 범위에서 이진탐색을 한다! → isPossible이 true면 start = mid + 1, false면 end = mid -1로 ..
https://www.acmicpc.net/problem/1149언어: C++, 시간: 0ms 접근방법대표적인 dp를 이용하는 문제. 먼저 입력을 행이 N이고 열이 3인 맵에 담고 난 후, 0행부터 N-1행까지 dp로 최솟값의 합을 저장한다: i 번째 행의 R칸에는 i-1번째의 G칸과 B칸 중 min을 저장한다.i 번째 행의 G칸에는 i-1번째의 R칸과 B칸 중 min을 저장한다.i 번째 행의 R칸에는 i-1번째의 R칸과 G칸 중 min을 저장한다....이런식으로 저장하게 되면, i번째 행의 각 열에는 i번째 집에 해당 색깔로 색칠했을때 + 그 이전 행들에 색칠하는 총 최소 비용이 저장된다.dp를 다 구하고 난 후, 정답은 N-1 행의 각 열에 담긴 숫자 중 최솟값이다. 1000 x 1000은 int 범..
https://www.acmicpc.net/problem/1715언어: C++, 시간: 36ms 접근방법정렬을 계속 반복하는 그리디 문제!가장 작은 숫자가 top에 오는 pq를 만들고 난 후,숫자들 중 가장 작은 숫자와 그 다음 숫자를 더하고, 이걸 정답 변수에 더해주고 난 후 다시 pq에 넣는다. ....→ 이걸 pq 크기가 1이 될 때까지 반복하기 고려사항이 문제는 모두 int로 풀이해도 된다.문제에서 N은 10만, 카드묶음의 최대 숫자는 1000인데,정답 변수에는 1000x10만 + 2000x5만 + 4000x2만5천 + 8000x만2500, ... 이런식으로 1억이 계속 더해진다.이 때 log100000 = 16.609... 이므로, 1억이 16.609... 번 더해지는 셈이다.약 16.6억 ..
https://www.codetree.ai/training-field/frequent-problems/problems/artistry/description?page=1&pageSize=20 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 언어: C++, 소요시간: 10ms 접근방법 그룹별 인접한 변의 개수를 찾기 위해 bfs(flood fill)을 2번 돌렸다. 첫 번째 bfs: 각 그룹의 시작 좌표(y, x), 그룹넘버를 groupMAP에 저장, 각 그룹별 칸의 개수 파악 두 번째 bfs: 각 그룹마다 인접한 그룹의 개수, 즉 변의 개수를 adjac..
https://www.codetree.ai/training-field/frequent-problems/problems/magical-forest-exploration/description?page=1&pageSize=20 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 언어: C++, 소요시간: 18ms 접근방법 최근 삼성 기출의 구현문제는, 맵에 적은것과 별개로 또다른 리스트를 만들어서 접근하는 문제 스타일이 출제되고 있다. 쌓여가는 골렘을 표시하는 MAP 배열과 별개로, 골렘의 번호만 알면 바로 골렘의 중심위치, 출구위치, 출구방향을 알 수 있는 ..
https://www.acmicpc.net/problem/17825 17825번: 주사위 윷놀이 첫째 줄에 주사위에서 나올 수 10개가 순서대로 주어진다. www.acmicpc.net 언어: C++, 소요시간: 8ms 완탐을 타면서 체크한다! 하드코딩해서 편하게 하도록 유도했다. 재귀 타고 난 다음 복구하는 것 잊지말기 #define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace std; int answer; int players[4];// player 위치 넣는다 int playerMAP[33];// 해당 칸에 플레이어가 있는지 여부 int dice[10]; vector MAP[33] = { {1}, {2}, {3}, {4}, {..
https://www.codetree.ai/training-field/frequent-problems/problems/tree-kill-all/description?page=1&pageSize=20 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 언어: C++, 소요시간: 20ms 주의해야 할 점: 1. 나무 번식할때 동시에 번식한다. 모든 나무를 체크하고 난 다음에 인접 빈칸에 새끼나무들을 뿌려야 한다. 2. 제초제를 뿌릴 때 빈칸을 만나는 경우 "뿌리고" 종료한다. 3. 제초제를 뿌릴 때 최대로 나무를 죽일 수 있는 칸이 여러개인 경우 행 오름차순..