EDOC/2022-1학기

2022/03/16

cha2y0ung 2022. 5. 8. 18:42
728x90
n=int(input())
for i in range(n):
    m=list(input())
    su=0
    for i in m:
        if i=="(":
            su+=1
        elif i==")":
            su-=1
        if su<0:
            print("NO")
            break
        
    if su ==0:
        print("YES")
    elif su>0:
        print("NO")
import sys


board = [list(map(int, input().split())) for _ in range(9)]
zeros = [(i, j) for i in range(9) for j in range(9) if board[i][j] == 0]


def get_possibles(r, c):
    possibles = set(range(1, 10))
    possibles -= set(board[r])
    test = set()
    for i in range(9):
        test.add(board[i][c])
    possibles -= test
    test = set()
    for i in range(r//3*3, r//3*3+3):
        for j in range(c//3*3, c//3*3+3):
            test.add(board[i][j])
    possibles -= test
    return tuple(possibles)


def solve(i):
    if i == len(zeros):
        [print(*row) for row in board]
        sys.exit()
    r, c = zeros[i]
    possibles = get_possibles(r, c)
    for num in possibles:
        board[r][c] = num
        solve(i+1)
        board[r][c] = 0


solve(0)
n = int(input())
words= []
for _ in range(n):
   word = input()
   words.append(word)
first_word = [0 for i in range(32)]
ans = 0
for i in range(len(words)):
   word = [0 for j in range(32)]
   if i ==0 :
      for c in words[i]:
         first_word[ord(c)%65] += 1
   else:
      for c in words[i]:
         word[ord(c)%65] += 1
   if ''.join(str(word)) == ''.join(str(first_word)):
      ans +=1
      continue;
   for j in range(32):
      if word[j] >=1:
         word[j] -= 1
         if ''.join(str(word)) == ''.join(str(first_word)):
            ans +=1
            continue
         word[j] +=1
   for j in range(32):
      word[j] += 1
      if ''.join(str(word)) == ''.join(str(first_word)):
         ans +=1
         continue
      word[j] -=1
      
   for j in range(32):
      if word[j] >= 1:
         word[j] -= 1
         for k in range(32):
            if k != j:
               word[k] +=1
               if ''.join(str(word)) == ''.join(str(first_word)):
                  ans +=1
                  continue
               word[k] -=1
               word[j] +=1 print(ans)
from collections import deque
m,n=map(int,input().split())
visited = [[0 for _ in range(100)] for _ in range(100)]
picture =[[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]]
dy = [1,-1,0,0]
dx = [0,0,1,-1]
def bfs(pixel,y,x):
    cnt=0
    q=deque()
    q.append((y,x))
    while q:
        fy,fx=q.popleft()
        for i in range(4):
            gy,gx=fy+dy[i],fx+dx[i]
            if 0<=gy<m and 0<=gx<n:
                if picture[gy][gx]==pixel and visited[gy][gx]!=1:
                    cnt+=1
                    visited[gy][gx]=1
                    q.append((gy,gx))
    return cnt
def solution(m,n,picture):
    number_of_area=0
    max_size_of_one_area=0
    take=[]
    for i in range(m):
        for j in range(n):
            if visited[i][j]!=1 and picture[i][j]!=0:
                max_size_of_one_area=max(bfs(picture[i][j],i,j),max_size_of_one_area)
                number_of_area+=1
    return number_of_area,max_size_of_one_area
print(solution(m,n,picture))

'EDOC > 2022-1학기' 카테고리의 다른 글

2022/03/02  (0) 2022.05.08