[Codeforces] #2259C - 101 [C++]
문제 링크 1. 아이디어 배열의 점수는 양 끝이 1이고 사이가 전부 0인 가장 긴 부분 배열의 길이다. 각 원소가 -1, 0, 1 중 하나인 배열 a에서 -1을 0 또는 1로 채워 이 점수를 최대로 만든 결과를 출력하는 문제다. 이 문제는 그리디한 접근으로 해결했는데, 1 사이에 위치한 -1은 최대한 0으로 바꾸는 것이 이득이라는 점과 가장...
문제 링크 1. 아이디어 배열의 점수는 양 끝이 1이고 사이가 전부 0인 가장 긴 부분 배열의 길이다. 각 원소가 -1, 0, 1 중 하나인 배열 a에서 -1을 0 또는 1로 채워 이 점수를 최대로 만든 결과를 출력하는 문제다. 이 문제는 그리디한 접근으로 해결했는데, 1 사이에 위치한 -1은 최대한 0으로 바꾸는 것이 이득이라는 점과 가장...
문제 링크 1. 아이디어 수열 a에 모든 원소를 동시에 2를 뺀 절댓값으로 바꾸는 연산을 원하는 만큼 적용해서, 한 값의 최대 빈도를 얼마까지 높일 수 있는지 구하는 문제다. 연산을 몇 번 해보면 규칙성을 발견할 수 있는데, 홀수는 1로 수렴하게 되고 짝수는 0과 2를 진동하게 된다는 점이다. 짝수의 경우 4로 나눈 나머지가 0인 경우와 2...
문제 링크 1. 아이디어 n개의 칸이 k칸씩 묶여 여러 농장을 이루고, 농장마다 학교를 최소 하나는 지어야 한다. 이진 문자열 s에서 1인 칸은 Nhoj의 땅이라 거기 학교를 지으면 비용이 들고, Nhoj의 땅에 짓는 횟수를 최소화하는 문제다. k칸씩 묶인 각 농장에 대해 John의 땅인 0이 하나라도 있으면 그 칸에 바로 학교를 지으면 되고...
문제 링크 1. 아이디어 spell의 알파벳을 한번씩만 모두 사용해서 만든 단어가 dic에 존재하는지 판단하는 문제로 애너그램 여부를 판단하는 간단한 문제다. 2. 복잡도 접근 시간 공간 풀이 $O(N \log N + D \times L ...
문제 링크 1. 아이디어 주어진 board에서 안전지대의 칸 수를 구하는 문제로 지뢰가 있는 칸과 이웃한 8방향이 위험지대다. 방문 배열을 둬서 지뢰를 발견하면 해당 칸 및 이웃한 칸까지 위험지대로 체크하는 과정을 모든 지뢰에 대해 수행한 후 안전지대의 크기를 셌다. 2. 복잡도 접근 시간 ...
문제 링크 1. 아이디어 공백으로 토큰을 나누면 각 항은 x로 끝나는 일차항이거나 상수항 둘 중 하나다. 일차항의 계수와 상수항을 각각 누적한 뒤, 계수가 1이면 생략하고 상수항을 뒤에 두는 출력 규칙에 맞춰 문자열을 조립했다. 2. 복잡도 접근 시간 공간 ...
문제 링크 1. 아이디어 정수 배열 numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 구하는 문제로 원소가 0 또는 음수가 될 수 있어서 2중 반복문을 통해 모든 경우를 탐색하는 방식으로 해결했다. 2. 복잡도 접근 시간 공간 풀이 ...
문제 링크 1. 아이디어 주어진 문자열 keyinput을 순서대로 훑으며 현재 좌표를 갱신하면 되는 간단한 문제다. board의 두 변이 모두 홀수라 중앙 $(0, 0)$에서 각 축으로 갈 수 있는 최대 칸 수는 변 길이의 절반이고, 매 이동마다 좌표를 이 범위로 자르면 판을 벗어나는 입력은 자연히 무시된다. 2. 복잡도 ...
문제 링크 1. 아이디어 2차원 좌표 평면에 변이 축과 평행한 직사각형이 있으며 각 꼭짓점의 좌표가 주어질 때 직사각형의 넓이를 반환하는 문제다. 직사각형의 넓이는 가로 길이와 세로 길이의 곱으로 가로 길이는 두 x좌표의 차로, 세로 길이는 두 y좌표의 차로 구하면 된다. 2. 복잡도 접근 시간 ...
문제 링크 1. 아이디어 오름차순으로 정렬된 정수 배열 nums에 대해 target의 인덱스를 반환하는 문제로 제목 그대로 이분 탐색을 구현해서 해결하면 된다. nums가 오름차순으로 정렬되어 있고, 모든 원소가 유니크하므로 이분 탐색으로 발견시 인덱스를 반환하고 발견하지 못하면 -1을 반환했다. 2. 복잡도 ...