Algorithm/Atcoder 8

AtCoder Beginner Contest 296

들어가기에 앞서 올 해부터 대학원 생활을 시작했는데, 아무래도 밤 늦게 있는 코포를 치면 시간표가 망가지게 된다... 그래서 학기 중 평일 밤 늦게 있는 코포는 거의 안칠 것 같다. A. Alternately code H와 F로 이루어진 문자열이 주어진다. 이웃하는 두 문자가 같은 경우가 있으면 No, 아니면 Yes를 출력하면 된다. 단순 for문 문제이다. B. Chessboard code 8x8 체스판에 말이 딱 하나 존재한다. 말이 없는 칸은 점(.), 있는 칸은 별(*)로 주어진다. 말의 위치를 A4, D5와 같은 형식으로 출력해야 한다. 행과 열 번호를 구하고, 이에 대응하는 알파벳 + 숫자 조합을 출력하면 된다. C. Gap Existence code 길이가 \(N\)인 정수 배열이 주어진다...

Algorithm/Atcoder 2023.04.02

AtCoder Beginner Contest 294

항상 앳코더랑 코포는 계속 참가했는데 풀이를 쓰는 게 귀찮아서 계속 블로그를 방치하고 있었다. 너무 블로그를 방치하는 거 같아서 이제부터 대회 이후 간단히라도 쓰려고 한다. A. Filter code 길이가 \(N\)인 배열을 입력받은 뒤 짝수인 원소만 출력하면 되는 문제이다. 문제에서 시키는대로 하면 된다. B. ASCII Art code \(H\times W\)크기의 정수 배열을 입력받는다. 각 배열은 0이상 26 이하의 정수이다. 각 정수 \(x\)를 \(x\)번째 대문자 알파벳으로 치환하여 출력하고, \(x\)가 0이면 마침표로 치환하려 출력하면 된다. 역시 문제에서 시키는대로 하면 된다. C. Merge Sequences code 길이가 \(N\), \(M\)인 두 배열 \(A\), \(B\)가..

Algorithm/Atcoder 2023.03.19

AtCoder Beginner Contest 277

A. ^{-1} code 문제 설명 길이 \(N\)의 순열과 정수 \(X, 1 \le X \le N\)이 주어진다. \(A_i = X\)를 만족하는 \(i\)를 찾아 출력해야 한다. 알고리즘 for문으로 탐색하면서 \(A_i = X\)를 찾아 출력하면 된다. B. Playing Cards Validation code 문제 설명 길이가 2인 문자열이 \(N\)개 주어진다. 이 \(N\)개의 문자열이 카드 묶음에 해당하는 지를 출력해야 한다. 카드 묶음이란 각 문자열이 카드에 해당해야 하고 모든 카드가 서로 달라야 한다. 알고리즘 먼저 각 문자열이 카드에 해당하는 지를 검사하고, 이후 set과 같은 자료구조를 이용해 중복이 있는지를 확인하면 된다. C. Ladder Takahashi code 문제 설명 \(..

Algorithm/Atcoder 2022.11.13

AtCoder Beginner Contest 265

A. Apple 문제 설명 하나의 사과를 X원에 사고, 3개의 사과를 Y원에 살 때 정확히 N개의 사과를 구매하기 위해 필요한 금액을 출력해야 한다. 알고리즘 A 치고는 생각할 부분이 있는 문제였다. 단순 그리디 풀이는 구현이 번거로울 것 같아서 dp 점화식으로 해결하였다. n개의 사과를 사기 위해 필요한 금액을 \(dp[n]\)이라 할 때, \(dp[n] = min(dp[n - 1] + X, dp[n - 3] + Y\)로 계산할 수 있다. B. Explore 문제 설명 총 N개의 방이 있고, i번에서 i+1번 방으로 이동하는 데 \(A_i\)초가 걸린다. \(T\)초가 주어지고, 남은 시간이 0이 되는 일이 없도록 하여 1번에서 N번까지 갈 수 있는지 여부를 출력해야 한다. 이때, M개의 버섯이 있고 ..

Algorithm/Atcoder 2022.08.23

AtCoder Beginner Contest 264

A. "atcoder".substr() code 문제 설명 입력으로 1이상 7이하의 정수 \(L, R (L < R)\)이 주어진다. 문자열 "atcoder"의 \(L\)번째 글자부터 \(R\)번째 글자까지 출력해야 한다. 알고리즘 \(L\)번째 글자부터 \(R\)번째 글자까지 출력한다. B. Nice Grid code 문제 설명 문제의 그림과 같은 사각형에서 \((R, C)\)칸이 색깔인지 출력해야 한다. 알고리즘 먼저 맨 중앙인 (8, 8)은 하얀 색이고, 여기에서 멀어지면 거리에 따라 색깔이 달라진다. 따라서 행과 열 방향 거리인 \(dr=|8-R|, dc=|8-C|\)를 계산해둔다. 여기서 관찰해보면 dr과 dc 중 큰 값만 중요하다. 즉, \(d = max(dr, dc)\)값에 따라 색깔이 결정된..

Algorithm/Atcoder 2022.08.14

AtCoder Beginner Contest 258

A. When? code 문제 설명 정수 \(0 \le K \le 100 \)이 주어진다. 21:00 으로부터 \(K\)분 지난 시간을 hh:mm 형식으로 출력해야 한다. 알고리즘 60분 이상인 경우 hour에 1을 더해주고, minute를 60만큼 빼준 뒤 출력하면 된다. B. Number Box code 문제 설명 정수 \(1 \le N \le 10\)과 \(N \times N\)짜리 정사각 행렬이 주어진다. 행렬의 각 값은 1이상 9이하이다. 한 점을 정한 뒤, 상하좌우와 대각선까지 총 8방향 중 한 방향을 정해 \(N-1\)칸 움직인다. 만약 범위 바깥으로 나가면 행렬의 반대 방향으로 이동한다. 예를 들어, 맨 왼쪽에서 왼쪽 방향으로 이동하면 맨 오른쪽으로 이동한다. 이와 같이, 총 \(N\)칸을..

Algorithm/Atcoder 2022.07.02

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