-
Atcoder Beginner Contest 287 후기AtCoder 2023.02.05 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.01.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.07 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.06 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, ..