algorithm 24

AtCoder Beginner Contest 257

A. A to Z String 2 code 1. 문제 설명 a부터 z까지의 글자가 \( N \) 개씩 있는 문자열이 있다. 이 문자열의 \(K\)번째 글자를 구해야 한다. 2. 알고리즘 \( K\)에서 \(N\)씩 빼나가면서 몇 번째 글자인지 확인하면 된다. B. 1D Pawn code 1. 문제 설명 1차원 배열에 폰이 몇 개 있다. 여기에 총 \(Q\) 개의 명령을 내린다. 각 명령은 특정 폰을 오른쪽으로 한 칸 옮긴다. 이때 폰이 맨 오른쪽에 있거나 옆에 다른 폰이 있으면 움직일 수 없다. \(Q\) 개의 명령을 내린 후 각 폰의 위치를 출력해야 한다. 2. 알고리즘 문제에 주어진대로 시뮬레이션을 진행한 후, 시뮬레이션 결과를 출력하면 된다. C. Robot Takahashi code 1. 문제 설..

Algorithm/Atcoder 2022.06.29

AtCoder Beginner Contest 251

A. Six Characters code 1) 문제 설명 + 알고리즘 길이가 3이하인 문자열 \( s\)가 들어온다. 문자열 \( s\)를 \( \frac{6}{len(s)} \) 번 출력하면 된다. B. At Most 3 (Judge ver.) code 1) 문제 설명 \(N \leq 300 \)개의 숫자가 주어진다. 이 중 최대 3개의 숫자를 골라서 합이 \( W \)이하로 만들 때, 가능한 합의 경우의 수를 출력하는 문제이다. 2) 알고리즘 \( O(N^3) \) 으로 모든 가능한 합 계산하고, 중복 제외한 뒤 개수를 출력한다. C. Poem Online Judge code 1) 문제 설명 + 알고리즘 N개의 문자열과 정수 쌍 \( (S, T) \)가 주어진다. set으로 문자열 중복 체크해주고, ..

Algorithm/Atcoder 2022.05.15

Codeforces Round #789 (Div. 1)

A. Tokitsukaze and Strange Inequality code 1) 문제 해설 길이가 \(n \leq 5000\) 인 순열 \(p\)가 주어질 때 \( 1 \leq a p_d \)를 만족하는 \( (a, b, c, d) \) 쌍의 개수를 구하는 문제이다. 2) 알고리즘 \(cnt[i][j] \)를 \( p_1\)부터 \(p_i\)까지의 수 중, \(j \) 이하인 수의 개수라고 정의하자. \( cmt\)를 전처리해 놓으면 특정 구간 \( [a, b]\)에서 \( k\) 이하인 수의 개수를 \( O(1) \) 안에 구할 수 있다. \(b, c\)를 고정해두고 생각해보자. 그렇다면 위 조건을 만족하는 \(a \)의 ..

Codeforces Round #788 (Div. 2)

A. Prof. Slim code 1) 문제 설명 길이 10,000 이하의 숫자로 이루어진 배열이 주어질 때, 부호가 서로 다른 두 숫자를 골라, 수 숫자의 부호를 바꿀 수 있다. 이 과정을 여러 번 반복해서 배열을 정렬할 수 있는지 물어보는 문제이다. 2) 알고리즘 먼저 배열에 음수의 개수가 \( k \) 개라 하자. 배열의 모든 숫자에 절댓값을 취하고, 배열 앞의 \( k \) 개의 수에 -1을 곱해준다. 그 후 배열이 정렬되어 있는 지 확인하면 된다. B. Dorms War code 1) 문제 설명 문자열 \(s\)와 특별한 문자 \(c\)가 \(k\) 개 주어진다. 이때 아래 작업을 진행해서 \(s\)의 문자열 중 일부 문자를 지운다. 1. 문자열 \(s\)에서 특별한 문자에 해당하는 모든 위치 ..