본문 바로가기

구현23

[백준 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.
[백준 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.
[백준 148990] 경사로 www.acmicpc.net/problem/14890 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 구현문제 실전에서 나오면 백퍼 틀림 ㅋㅎㅋㅎ 괜히 골3이 아녔다. 알고리즘은 없고 구현 조건이 까다롭다. 처음에 row, col따로 함수를 만들었는데 그러지 않고 transpose를 해서 함수 하나로 돌리는게 낫다. for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { scanf("%d", &arr[i][j]); } } for (int i = 0; i < n; i++) { for .. 2021. 2. 25.
[프로그래머스 2020 KAKAO BLIND RECRUITMENT] 문자열 압축 programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자 programmers.co.kr 레벨 2에 해당하는 문제 문자열 처리는 파이썬으로 하자! 문제가 다행히 모든 문자에 대해 반복을 찾는게 아니었다. 문자열 길이를 2로 설정한다면 시작 인덱스가 0, 2, 4 ... 이런 식으로 반복을 검사하는 것이었다. 알고리즘보다는 구현에 가까운 문제로 for 문자열 길이 in range(1부터 전체 문자열 절반까지) for 전체 문자열 순회하기 의 구조이다. 파이썬을.. 2021. 2. 12.