[Codeforces] #2266D - Falling Concrete [C++]
문제 링크 1. 아이디어 길이 n인 배열 a에서 두 위치 $i < j$를 골라 $j$번째 칸을 $i$번째 자리로 옮기는 연산을 원하는 만큼 반복해, 만들 수 있는 가장 긴 평평한(높이가 모두 같은) 연속 구간의 길이를 구하는 문제다. 이때 옮겨진 칸은 높이가 $j - i$만큼 줄고, 그 사이에 있던 나머지 칸들은 한 칸씩 뒤로 밀리며 높...
문제 링크 1. 아이디어 길이 n인 배열 a에서 두 위치 $i < j$를 골라 $j$번째 칸을 $i$번째 자리로 옮기는 연산을 원하는 만큼 반복해, 만들 수 있는 가장 긴 평평한(높이가 모두 같은) 연속 구간의 길이를 구하는 문제다. 이때 옮겨진 칸은 높이가 $j - i$만큼 줄고, 그 사이에 있던 나머지 칸들은 한 칸씩 뒤로 밀리며 높...
문제 링크 1. 아이디어 이진 문자열 s가 주어질 때, 위치 i를 골라 s[i]를 s[0]부터 s[i]까지의 비트 AND 또는 비트 OR 값으로 바꾸는 연산을 원하는 만큼 반복해 s를 비내림차순으로 만드는 데 필요한 최소 연산 횟수를 구하는 문제다. 비내림차순 이진 문자열은 앞쪽이 전부 0, 뒤쪽이 전부 1인 형태뿐이다. 일단 전체를 1로 ...
문제 링크 1. 아이디어 Alice와 Bob이 각각 파일을 하나씩 가지고 있고 더미 파일도 하나 존재하는 상황이다. Alice와 Bob의 파일의 크기 차이를 Alice는 최대로, Bob은 최소로 하려고 할 때 최적의 플레이 이후 결과를 구해야 한다. Alice의 파일 크기를 a, Bob의 파일 크기를 b, 더미 파일의 크기를 c라고 할 때 a...
문제 링크 1. 아이디어 n명의 참가자와 세 문제가 있고, 각 문제를 푼 참가자 수가 a1, a2, a3로 주어질 때 세 문제를 모두 풀지 못한 약한 참가자 수의 최솟값을 구하는 문제다. 세 문제를 모두 풀지 못한 약한 참가자의 수는 전체 참가자 수에서 세 문제를 모두 푼 참가자 수의 최댓값을 빼는 것으로도 구할 수 있는데, 세 문제를 모두 ...
문제 링크 1. 아이디어 동물 보호소에 가장 먼저 들어온 동물이 언제 들어왔는지 구하는 문제다. DATETIME은 저장 형식 자체가 시간순으로 정렬되므로, MIN()으로 최솟값을 구하면 곧 가장 이른 시각이 된다. 2. 쿼리 풀이 [MySQL] SELECT MIN(DATETIME) FROM ANIMAL_INS
문제 링크 1. 아이디어 보호 시작 시 상태(INTAKE_CONDITION)가 'Aged'가 아닌 동물의 아이디와 이름을 조회하는 문제다. 2. 쿼리 풀이 [MySQL] SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION != 'Aged' ORDER BY ANIMAL_ID
문제 링크 1. 아이디어 보호 시작 시 상태(INTAKE_CONDITION)가 'Sick'인 동물의 아이디와 이름을 조회하는 문제다. 2. 쿼리 풀이 [MySQL] SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION = 'Sick' ORDER BY ANIMAL_ID
문제 링크 1. 아이디어 모든 동물의 이름과 보호 시작일을 ANIMAL_ID 역순으로 조회하는 문제다. 2. 쿼리 풀이 [MySQL] SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC
문제 링크 1. 아이디어 동물 보호소에 들어온 모든 동물의 정보를 ANIMAL_ID 순으로 조회하는 문제다. 2. 쿼리 풀이 [MySQL] SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID
문제 링크 1. 아이디어 정수로 이루어진 문자열 n_str에 대해 가장 왼쪽부터 연속으로 등장한 0을 뗀 문자열을 반환하는 간단한 문제다. 2. 복잡도 접근 시간 공간 풀이 $O(N)$ $O(N)$ ($N$ =...