AtCoder
-
Atcoder Beginner Contest 287 후기AtCoder 2023. 2. 5. 18:23
A. Majority 홀수인 n이 주어지고, n개의 숫자가 주어질 때 과반이 동의하는지를 묻는 문제이다 import sys, math n = int(sys.stdin.readline()) d = {"F" : 1, "A" : 0} val = 0 for _ in range(n): temp = sys.stdin.readline().rstrip() val += d[temp[0]] print('Yes' if val >= math.ceil(n / 2) else 'No') B. Postal Card n개의 문자열과 m개의 문자열이 주어질 때, m개의 문자열 중 하나라도 suffix가 되는 문자열의 갯수를 n개의 문자열에서 찾는 문제이다. 위 그림 1에서 n개의 문자열은 arr라는 배열에, m개의 문자열은 temp라는..
-
Atcoder Beginner Contest 285 후기AtCoder 2023. 1. 17. 00:47
A. Edge Checker 2 주어진 그림과 같은 트리처럼 트리가 구성된다고 할 때 주어지는 두 정점이 부모와 자식관계인지 판별하는 문제이다. import sys a, b = map(int, sys.stdin.readline().split()) if max(a, b) == 2 * min(a, b): print('Yes') elif max(a, b) == 2 * min(a, b) + 1: print('Yes') else: print('No') B. Longest Uncommon Prefix 길이가 n인 문자열 S가 주어지고, n이하인 양수 i가 있을 때 각각의 i에 대하여 $S_{1} \neq S_{1 + i}, S_{2} \neq S_{2 + i} \cdots S_{k} \neq S_{k + i}$를 ..
-
Atcoder Beginner Contest 272 후기AtCoder 2022. 12. 7. 20:02
A. Integer Sum 길이가 n인 수열이 주어지고, 그 수열의 합을 구하는 문제이다 import sys n = int(sys.stdin.readline()) arr = list(map(int, sys.stdin.readline().split())) print(sum(arr)) B. Everyone is Friends n명의 사람이 있고, n명의 사람들이 각각 m개의 파티에 참여한 목록이 주어질 때 모든 쌍의 사람이 같은 파티에 참가하였는지를 출력하는 문제이다. n과 m 제한이 100으로 작기 때문에 간단히 브루트포스로 해결하면 된다 import sys # 입력부 n, m = map(int, sys.stdin.readline().split()) # cache : 파티 번호를 key, 그 때 참여한 사..
-
Atcoder Beginner Contest 271 후기AtCoder 2022. 12. 6. 14:09
A. 484558 주어진 숫자를 16진수로 바꾸는 문제이다. 파이썬 기준으로는 간단히 내장함수로 처리할 수 있다. 약간 주의할 점은 leading zero를 채워줘야 한다는 것이고, 숫자가 아닌 문자에 대해서는 대문자로 항상 출력해야 한다는 점이다 import sys n = int(sys.stdin.readline()) print(str(hex(n)).replace('0x', '').zfill(2).upper()) B. Maintain Multiple Sequences n개의 수열이 주어지고, m개의 쿼리가 들어온다. 이 때 쿼리의 형식은 두 숫자인데, 의미는 i번째 수열의 j번째 원소를 출력하라는 의미이다. 사실상 n개의 수열로 이루어진 2차원만 구성해주면 복잡도는 $O(N + M)$이기 때문에 여유있..
-
Atcoder Beginner Contest 270 후기AtCoder 2022. 11. 22. 20:30
A. 1-2-4 Test 1점 문제, 2점 문제, 4점 문제로 이루어진 3개의 문제집에서 A와 B가 각각 득점한 점수를 x, y점이라고 할 때 C는 A와 B 중 한명이라도 맞춘 문제는 무조건 맞춘다고 가정하면 C의 점수는 몇 점이 되는지를 묻는 문제이다. 예를 들어 A가 6점, B가 3점이라고 하자. 그렇다면 A는 4점 문제 하나와 2점 문제 하나를 맞춘 셈이다. 같은 논리로 B 역시 2점까지 문제 하나와 1점짜리 문제 하나를 맞춘 셈이다. 따라서, C는 3문제를 모두 맞추므로 C의 점수는 총 7점이 된다 import sys a, b = map(int, sys.stdin.readline().split()) t = {4 : False, 2 : False, 1 : False} ao = {4 : False, ..
-
Atcoder Beginner Contest 269 후기AtCoder 2022. 11. 17. 12:48
A. Anyway Takahashi 매우 간단한 사칙연산을 한 이후 Takahashi를 출력하면 되는 매우 간단한 문제이다 import sys a, b, c, d = map(int, sys.stdin.readline().split()) print((a + b) * (c - d)) print('Takahashi') B. Rectangle Detection 입력으로 N x M 사각형이 들어오고, A x B의 사각형이 내부에 있을 때, A와 B를 구하는 문제이다 위 그림 1에서 N=M=5이고, A=B=2이다. N x M이 최대 10 x 10이기 때문에, 단순한 반복문으로 쉽게 해결할 수 있다 import sys arr = [list(sys.stdin.readline().rstrip()) for _ in ran..
-
Atcoder Beginner Contest 268 후기AtCoder 2022. 11. 15. 21:48
A. Five Integers 숫자 5개가 주어지고, 중복을 제거했을 때 남는 숫자의 갯수를 구하는 문제이다 import sys arr = list(map(int, sys.stdin.readline().split())) print(len(set(arr))) B. Prefix? 문자열 2개가 주어진 후, 첫번째로 주어진 문자열이 두번째로 주어진 문자열의 접두사가 되는지 여부를 출력하는 문제이다. 단, 두 문자열이 일치하는 경우에도 접두사로 판정됨을 주의해야 한다 import sys a = sys.stdin.readline().rstrip() b = sys.stdin.readline().rstrip() print('Yes' if b.startswith(a) else 'No') C. Chinese Restau..
-
Atcoder Beginner Contest 267 후기AtCoder 2022. 9. 9. 14:41
A. Saturday 월요일부터 금요일까지 임의의 요일이 입력될 때, 토요일까지 몇일이 남았는지 출력하는 문제이다 import sys cache = {"Monday" : 5, "Tuesday" : 4, "Wednesday" : 3, "Thursday" : 2, "Friday" : 1} n = sys.stdin.readline().rstrip() print(cache[n]) B. Split? 단순 구현 문제이다. 문제에서 요구한 조건에 따라 split 여부를 구해주면 된다. n이 매우 작기 때문에 웬만한 브루트포스로도 충분하다 import sys n = sys.stdin.readline().rstrip() # cache : 각 기둥이 key, 담고 있는 핀 번호의 배열을 value로 하는 dictionar..