본문 바로가기

알고리즘 문제풀이291

[백준 20056] 마법사 상어와 파이어볼 조금 예전에 푼 문제긴 한데 헷갈리는 로직이 있어서 정리한다. www.acmicpc.net/problem/20056 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net 구현 문제이고 규칙은 아래와 같다. 1. 모든 파이어볼이 방향으로 속력만큼 이동(이동중엔 경로가 겹쳐도 상관없다.) 2. 이동이 끝난 뒤 2개 이상의 파이어볼이 있는 칸에 한해서 2-1. 파이어볼이 하나로 합쳐짐 2-2. 다시 4개로 나눠짐 2-3. 4개의 파이어볼은 질량 = 질량 합 /5 -> 질량이 0인 경.. 2021. 3. 31.
[프로그래머스 2018 KAKAO BLIND RECRUITMENT] [1차]캐시 programmers.co.kr/learn/courses/30/lessons/17680?language=cpp =cacheSize){ v.erase(v.begin()); } v.push_back(*it); } } return answer; } 2021. 3. 3.
[백준 15662] 톱니바퀴2 이전 톱니바퀴 문제와 유사하다. 조건만 다른데 이번엔 톱니가 t개이고 회전 조건은: 옆 톱니가 회전하고 + 맞닿아있는 전극이 서로 다를 때 -> 반대 방향으로 회전한다. 현재 회전하는 톱니바퀴 좌우로 방향만 저장했다. 마지막에 방향에 따라 각 톱니바퀴를 회전시킨다. #include #define MAX 1001 int t, k; int arr[MAX][10]; int dirs[MAX]; using namespace std; void turn(int row, int dir) { if (dir == 1) { int last = arr[row][7]; for (int i = 7; i >= 1; i--) { arr[row][i] = arr[row][i - 1]; } arr[row][0] = last; } els.. 2021. 3. 1.
[백준 1248] 맞춰봐 www.acmicpc.net/problem/1248 1248번: 맞춰봐 규현이는 멍청하다. 왜냐하면, 1~10까지 수 밖에 모르기 때문이다. 어느 날 규현이 옆을 지나가던 태석이가 규현이를 보고 이렇게 외쳤다. "빵빵!!" 규현이는 "아하!" 하면서 세상에는 빵이란 수도 www.acmicpc.net 순열로 풀었다가 틀렸다.... 중복 순열로 푸는 문제이다. n개의 숫자가 모두 같을 수도 있기 때문이다. 중복 순열 구현부 선택한 숫자를 cnt 번째 selected 배열에 넣고 다음 턴으로 넘긴다. for (int i = -10; i 0) { return '+'; } else if (a < 0) { return '-'; } else { return '0'; } } bool isValid(int col) { .. 2021. 3. 1.