풀이
A - 22222
abc394_a
문제 요약
문제 링크 : https://atcoder.jp/contests/abc394/tasks/abc394_a
단순히 주어지는 숫자 문자열에서 2의 개수만큼 다시 2를 출력하는 문제입니다.
문제 풀이
문제 내용을 그대로 잘 구현하면 됩니다.
코드
print('2' * input().count('2'))
s = input() cnt = s.count('2') print('2' * cnt)
문제 태그
원본 링크
B - cat
abc394_b
문제 요약
문제 링크 : https://atcoder.jp/contests/abc394/tasks/abc394_b
주어지는 문자열들에 대해서, 문자열 길이를 기준으로 정렬 하고 차례대로 붙여 출력하는 문제입니다.
문제 풀이
문제 내용을 그대로 잘 구현하면 됩니다.
코드
n = int(input()) l = [input() for _ in range(n)] l.sort(key=lambda t : len(t)) for i in l: print(i,end="")
문제 태그
원본 링크
C - Debug
abc394_c
문제 요약
문제 링크 : https://atcoder.jp/contests/abc394/tasks/abc394_c
주어지는 문자열에서
WA
부분 문자열을AC
라는 문자열로 계속해서 대체했을 때, 최종적으로 나타나는 문자열을 구하는 문제입니다.예를 들어, WWA 라는 문자열이 있으면 W
WA
→WA
C → ACC 로 변합니다.문제 풀이
문자가 변하는 양상을 확인해보면,
W*X개+A*1개
의 형태를 갖춰야만 바뀐다는 걸 WA가 AC로 계속 바뀌게 됨을 알 수 있습니다. W의 개수를 세다가 A 문자가 등장하면 대체하는 식으로 처리하면 됩니다.코드
s = input() stk = [] for i in s: if len(stk) == 0 or i != 'A' stk.append(i) continue idx = len(stk) - 1 cnt = 0 while stk[idx] == 'W' and idx >= 0: idx -= 1 cnt += 1 cnt2 = cnt while cnt > 0: stk.pop() cnt -= 1 stk.append('A') while cnt2 > 0: stk.append('C') cnt2 -= 1 print("".join(stk))
문제 태그
원본 링크
D - Colorful Bracket Sequence
abc394_d
문제 요약
문제 링크 : https://atcoder.jp/contests/abc394/tasks/abc394_d
전형적인 안정적인 괄호 문자열 문제입니다. 다만, 괄호의 종류가
()
,<>
,[]
로 다양합니다.문제 풀이
안정적인 괄호 문자열 문제이기 때문에 스택으로 해결하면 됩니다. 다만, 괄호의 종류가 다양하다는 점을 고려하여 구현해야 합니다.
코드
s = input() stk = [] for i in s: if len(stk) == 0 or i in "([<": stk.append(i) else: if stk[-1] == '<' and i == '>': stk.pop() elif stk[-1] == '(' and i == ')': stk.pop() elif stk[-1] == '[' and i == ']': stk.pop() if len(stk) == 0: print("Yes") else: print("No")
문제 태그
원본 링크