23/09/26-27
2023. 9. 28. 00:48
09/26
[알고리즘]
1. CodeTree - 바이러스 백신
- 조합 + 덱 활용
- 백신을 받는 병원을 M개 고르기 위해 조합을 사용했고, BFS를 위해 deque을 사용했다.
09/27
[알고리즘]
2. CodeTree - 정육면체 한번 더 굴리기
- 주사위를 회전 시킬 때, 나는 6개의 면을 3*4 배열에서 어떻게 움직일지 고민했다.
- 해설을 보니 앞, 위, 오른쪽 만 저장해놓고 합이 7이라는 규칙을 활용해 뒤, 아래, 왼쪽을 구했다. 훨씬 나은듯
3. CodeTree - 토끼와 경주
- 격자 밖일 경우 반대로 빠르게 이동하기
- 빠르게 이동하기 위해서는
%
연산이 필수이다. - 격자 밖을 넘어갔을 경우, 넘어간 만큼 다시 반대 방향으로 돌려야한다.
2*(N-1) - nr
- nr이 음수여도 상관없는 이유는 파이썬으로 모듈러 연산을 하면 양수로 바꿔준다. 이때 값으로 나오는 양수는 끝에서 얼마나 떨어졌는지를 표현하기 때문에, 그만큼을 다시 마지막에서 빼니깐 사용할 수 있다.
- 만약 길이가 5라면, 마지막 인덱스는 4이고, 마지막 위치는 두번 밟지 않아 왕복 거리는 (5-1) * 2 = 8이다.
- -2 % 8 = 6 (6은 8에서 2만큼 왼쪽으로 떨어져있다.)
- 8 - 6 = 2 => (-2)는 2가 되어야한다.
- 빠르게 이동하기 위해서는
(빨리 풀었어야 하는데.. 왜 2시간이나 걸렸니...)
4. CodeTree - 색깔 폭탄
- 중력을 적용하는 법에 대해 다시 확인했다.
- 새로운 그리드 + 마지막 위치 저장
- 기존 그리드 + 빈칸의 개수 저장
- 시간 복잡도는 비슷한 것 같다.
5. CodeTree - 예술성 / 청소는 즐거워
- 예술성은 group이 최대 10개밖에 안나와서 그룹별 위치를 저장했다.
- 청소는 즐거워는 영향력(%)를 하드코딩했다. 훨씬 편하다.