목록전체 글 (108)
1seul357
def bfs(row, col): dr = [-1, 1, 0, 0] dc = [0, 0, -1, 1] q.append([row, col]) while len(q) != 0: x, y = q.pop(0) for i in range(4): now_dr = x + dr[i] now_dc = y + dc[i] if 0
N, M = map(int, input().split()) arr = list(map(int, input().split())) visited = [0]*N max_num = 0 for i in range(N-2): # 총 세개의 카드를 만들어야 하므로 범위는 N-2 for j in range(i+1, N-1): # 두번째 카드는 N-1 for k in range(j+1, N): sum_num = arr[i] + arr[j] + arr[k] # 세 장의 카드 합 if sum_num > M: # M보다 커지면 버리기 continue if sum_num > max_num: # 가장 큰 값 구하기 max_num = sum_num print(max_num)
# 1번 컴퓨터를 통해 걸리게 되는 웜바이러스 개수 def dfs(now): for i in range(N+1): # 7번 컴퓨터까지 탐색 if visited[i] == 0 and computer[now][i] == 1: # 컴퓨터끼리 연결되어 있다면 visited[i] = 1 # 방문 체크 dfs(i) N = int(input()) M = int(input()) computer = [[0]*(N+1) for _ in range(N+1)] visited = [0]*(N+1) result = 0 for i in range(M): x, y = map(int, input().split()) computer[y][x] = computer[x][y] = 1 dfs(1) # 1번 컴퓨터에서 출발 for i in r..
test_case = int(input()) for tc in range(test_case): N = int(input()) Height = list(map(int, input().split())) //가로 길이 입력받기 max_num = 0 for j in range(N): //기준이 되는 j cnt = 0 for i in range(j+1, N): //인덱스 i if Height[j] > Height[i]: //값이 더 크다면 cnt += 1 //이동시킬 수 있다. if cnt > max_num: //낙차가 가장 큰 값 찾기 max_num = cnt print('#{} {}' .format(tc+1, max_num))
# 성공코드 N = int(input()) arr = list(map(int, input().split())) stack = [] # 탑 크기를 저장하는 리스트 ans = [] # 답(레이저 신호 수신 탑) 저장할 리스트 stack.append([0, arr[0]]) # 첫번째 탑 정보(인덱스, 탑 크기)를 stack에 저장 ans.append(0) # 레이저는 왼쪽으로 쏘기 때문에 첫번째 탑은 무조건 값이 0 for i in range(1, len(arr)): # 두번째 탑부터 비교 # 현재 탑보다 큰 탑 중에서 가장 가까운 값이 레이저 신호 수신하는 탑이므로 스택의 마지막부터 비교 for j in range(len(stack), -1, -1): if stack: # 스택에 값이 있다면 tmp, tem..
T = int(input()) for tc in range(T): s = input() ans = '' for i in s: if i == 'a' or i == 'e' or i == 'o' or i == 'u' or i == 'i': continue ans += i print('#{} {}'.format(tc+1, ans))
N = int(input()) string = list(input()) stack = [] # '(' 인덱스 넣을 리스트 arr = [] # '('과 ')'의 쌍이 되는 인덱스 넣을 리스트 cnt = 1 max_cnt = 0 for i in range(len(string)): if string[i] == "(": # '(' 이면 stack.append(i) # '('의 인덱스 추가 # ')'고, 스택이 비어있지 않다면 (스택에 '('의 인덱스가 있다면) elif string[i] == ')' and len(stack) != 0: a = stack[-1] # 가장 위에 있는 값을 변수 a에 저장 stack.pop(-1) # 스택에서 제거 arr.append(a) # arr 리스트에 쌍이 되는 (과 )의 인..
T = int(input()) for tc in range(T): str = input() ans = "" for now in str: temp = "" # 이번에 추가해줄 문자 if now == "b" : temp = "d" if now == "d" : temp = "b" if now == "p" : temp = "q" if now == "q" : temp = "p" ans = temp + ans # b -> d, d -> b, p -> q, q -> p print(ans)