목록전체 글 (86)
Hikenny25
t = int(input()) ans = list() for _ in range(t): s = list(input()) i = 0 while i < len(s)-1 : if s[i] == s[i+1]: s.pop(i) s.pop(i) i = 0 else: i += 1 ans.append(len(s)) for i in range(t): print(f"#{i+1} {ans[i]}") 간단한 문자열 문제 연속이면 두 요소를 삭제하고 다시 처음부터 탐색하도록 했다~
class Graph: def __init__(self, size): self.size = size self.matrix = [[0] * size for _ in range(size)] self.visited = [0] * size def addEdge(self, v1, v2): self.matrix[v1][v2] = 1 def dfs(self, start): self.visited[start] = 1 for i in range(self.size): if self.matrix[start][i] == 1 and self.visited[i] == 0: self.dfs(i) def dfs2(self, start): stack = [start] while stack: var = stack.pop() if sel..
t = int(input()) ans = list() for _ in range(t): data = list(input()) s = list() flag = 1 for i in data: if i == '(' or i == '{': s.append(i) elif i == ')': if len(s) == 0: flag = 0 break if s[-1] != '(': flag = 0 break else: s.pop() elif i == '}': if len(s) == 0: flag = 0 break if s[-1] != '{': flag = 0 break else: s.pop() else: continue if len(s) != 0: flag = 0 ans.append(flag) for i in range(..

dp = [0, 1, 3] for i in range(28): dp.append(dp[i+2] + 2 * dp[i+1]) t = int(input()) data = [int(input())//10 for _ in range(t)] for i in range(t): print(f"#{i+1} {dp[data[i]]}") 드디어 점화식 세우는 DP 문제가 나왔다... 오랜만이라 점화식 구하는 법도 까먹어서 ㅎ; 조금 헤맸다..
t = int(input()) ans = list() for _ in range(t): str1 = list(input()) str2 = list(input()) d = dict() for i in range(26): d[chr(65+i)] = 0 for i in str2: d[i] += 1 a = list() for i in str1: a.append(d[i]) ans.append(max(a)) for i in range(t): print(f"#{i+1} {ans[i]}") str1에 글자가 중복되어 있어서 이해하는데 좀 애매했는데 그냥 신경 안쓰고 풀었다 chr 함수와 딕셔너리 써서 가볍게 카운팅해주고 최댓값 뽑아줬당
def is_palindrome(x): original = x.copy() t = len(x) // 2 for i in range(t): x[i], x[len(x)-1-i] = x[len(x)-1-i], x[i] if original == x: return True else: return False t = int(input()) ans = list() for _ in range(t): n, m = map(int, input().split()) word = [list(input()) for _ in range(n)] # 행 회문 계산 tmp = 0 for i in range(n): for j in range(n-m+1): var = list() for k in range(m): var.append(word..
t = int(input()) ans = list() for _ in range(t): str1 = input() str2 = input() var = 1 if str1 in str2 else 0 ans.append(var) for i in range(t): print(f"#{i+1} {ans[i]}") in 써주면 풀리는 간단한 문제
t = int(input()) answer = list() for _ in range(t): n = int(input()) data = list(map(int, input().split())) cnt = 1 sorted_data = list() while len(data) != 0: if cnt % 2 == 1: # 큰 수 구하기 sorted_data.append(max(data)) data.remove(max(data)) else: sorted_data.append(min(data)) data.remove(min(data)) cnt += 1 answer.append(sorted_data[:10]) for i in range(t): print(f"#{i+1}", end=" ") print(*answer[..
def count_binarysearch(page, object): left = 1 right = page cnt = 0 while(left object: right = middle else: left = middle cnt += 1 return -1 t = int(input()) answer = list() for _ in range(t): p, pa, pb = map(int, input().split()) cpa = count_binarysearch(p, pa) cpb = count_binarysearch(p, pb) if cpa > cpb: answer.append('B') elif cpa < cpb: answer.append('A') else: answer.append('0') for i in r..
def howmany1(n): cnt = 0 while(n != 0): if(n & 1): cnt += 1 n = n >> 1 return cnt t = int(input()) answer = list() for _ in range(t): a = [1,2,3,4,5,6,7,8,9,10,11,12] n, k = map(int, input().split()) subset = list() for i in range(1