Algorithm 211

[Python] 1221. GNS

tc = int(input()) for idx in range(1, tc+1): tc_num, n = input().split() num_list = list(input().split()) # 각 단어가 몇 번 나올지 count 해주는 딕셔너리 num_dict = {"ZRO": 0, "ONE": 0, "TWO": 0, "THR": 0, "FOR": 0, "FIV": 0, "SIX": 0, "SVN": 0, "EGT": 0, "NIN": 0} # num_list의 단어들 +1 for num in num_list: num_dict[num] += 1 # 정답 받을 리스트 sorted_num_list = [] # 단어와 개수 받아와서 리스트에 개수만큼 넣은 뒤, sorted_num_list에 추가. for nu..

[Python] 1213. string

for idx in range(1, 11): n = int(input()) # 케이스 번호 받을 n target = input() # 찾을 문자열 string = input() # 문장 count = 0 # 문자열이 문장 안에 몇 번 등장했는가 # Brute Force target_i = 0 # 찾을 문자열의 인덱스 string_i = 0 # 문장의 인덱스 # 찾을 문자열의 인덱스와, 문장의 인덱스가 각 길이를 넘지 않는 동안 반복 while target_i < len(target) and string_i < len(string): # 찾는 문자열의 원소와 문장의 원소가 다르다면 if target[target_i] != string[string_i]: string_i -= target_i # 시작했던 문..

[Python] 15649. N과 M(1)

방문 처리를 하면서 수열을 구하는 코드. def recur(cur): # m개 골랐다면 print if cur == m: print(*arr) return for i in range(n): if not visited[i]: # 중복 아니라면 visited[i] = True # 방문 처리 arr[cur] = i+1 # 리스트에 숫자 담기 recur(cur + 1) # 그 다음 숫자 들어가서 가져와 visited[i] = False # 다음에 쓰기 위해 방문 처리 해제 # 1부터 자연수 n까지, 중복없이 m개 고른 수열 구하기 n, m = map(int, input().split()) arr = [0 for _ in range(m)] # 길이가 m인 수열 담을 리스트 visited = [False for _..

Algorithm/Baekjoon 2021.09.07

[Python] 4843. 특별한 탐색

내장함수 sorted 사용하여 푼 코드 tc = int(input()) for idx in range(1, tc+1): n = int(input()) numbers = sorted(list(map(int, input().split()))) answer = [] for i in range(5): answer.extend([numbers.pop(), numbers.pop(0)]) print('#{}'.format(idx), end=' ') print(*answer) 내장함수 사용하지 않은 코드 ######### 함수 사용 안한 버전 ########### # 선택정렬 이용해서 numbers 정렬 def selectionSort(n, numbers): # 처음 인덱스부터 마지막 -1까지 반복 # (i보다 오른쪽..

[Python] 4836. 색칠하기

# 색칠하기 함수 def painting(purple): # 색칠할 박스 받아오기 [행 시작, 열 시작, 행 끝, 열 끝, 색깔] box = list(map(int, input().split())) # 색 (1: 빨강, 2: 파랑) color = box[4] # 왼쪽 위 모서리 에서 오른쪽 아래 모서리까지 색칠 for x in range(box[0], box[2] + 1): for y in range(box[1], box[3] + 1): # 같은 색은 겹치지 않는다는 조건. board[x][y] += color if board[x][y] == 3: purple += 1 return purple tc = int(input()) for idx in range(1, tc+1): n = int(input()) ..

[Python] 1210. ladder1

# 벡터설정 (좌우상) # 좌우는 상관없지만, 위로 가는 것이 마지막이어야 한다. # 사다리에서는 좌우 탐색이 우선이기 때문 dx = [-1, 1, 0] dy = [0, 0, -1] for idx in range(1, 11): n = int(input()) # 사다리 받아오기 ladder = [list(map(int, input().split())) for _ in range(100)] # 목표지점부터 시작하면 한번만 탐색하면 된다. x = ladder[99].index(2) # 목표지점(2)의 인덱스 찾기 y = 99 # 맨 밑에서부터 시작하는 y좌표 k = 0 # 방향 설정을 담당하는 K # y가 0인덱스까지 도달할때까지 반복한다. while y > 0: nx = x + dx[k] # 이동하고자 하는..

[Python] 1954. 달팽이 숫자

# tc의 수 tc = int(input()) # tc 수만큼 반복 for idx in range(1, tc+1): # 달팽이의 크기만큼 2차원 배열 만들어주기 snail = [[0] * idx for _ in range(idx)] # 델타 (우하좌상) dx = [0, 1, 0, -1] dy = [1, 0, -1, 0] cnt = 1 # 달팽이 배열에 넣는 수 초기화 x, y = 0, -1 # 달팽이 인덱스 초기화 k = 0 # 방향 설정 # cnt가 달팽이 크기(idx*idx)보다 작거나 같을 동안만 반복. while cnt

[Python] 1209. sum

처음 코드 # 10개의 테스트 케이스 for idx in range(1, 11): n = int(input()) # 정사각형 안의 요소들 받아오기 board = [list(map(int, input().split())) for _ in range(100)] diagonal_t = 0 # 대각선 합 r_diagonal_t = 0 # 반대편 대각선 합 total = [] # 합들을 담을 리스트 for i in range(100): column_t = 0 for j in range(100): column_t += board[j][i] if i==j: diagonal_t += board[i][j] r_diagonal_t += board[i][99-j] total.extend([column_t, sum(board..