n, m = map(int, input().split()) board = [list(input()) for _ in range(n)] coloring = [] for a in range(n - 7): # 8*8의 범위 지정 for b in range(m - 7): w_idx = 0 # 흰색으로 시작할 경우 색칠되어야 하는 개수 b_idx = 0 # 검은색으로 시작할 경우 색칠되어야 하는 개수 for i in range(a, a + 8): # 시작 지점 for j in range(b, b + 8): # 시작지점 if (i + j) % 2 == 0: # 인덱스의 합이 짝수일때. 짝수는 시작값과 같아야하니까. if board[i][j] != 'W': # B라면 w_idx += 1 # W로 칠하기(흰색으로 시작..
study/Algorithm
arr = [list(map(int, input().split())) for _ in range(9)] max_dict = {} for i in range(len(arr)): max_dict[i] = max(arr[i]) max = max(max_dict.values()) for i in max_dict.keys(): if not max in arr[i] : continue else: print(max) print(i + 1, arr[i].index(max) + 1) exit() # 구현할때 반복문을 여러번 돌려야하는건 맞는것같아서 반복하는 수를 줄여주려고 했음 # max_dict에 각 줄의 최대값을 담아줌 = 줄수만큼만 반복 # max에 최대값 구함 # max_dict에서 최대값이 있는 줄을 찾음. 그..
n, m = map(int, input().split()) arr1 = [list(map(int, input().split())) for _ in range(n)] # 행렬A arr2 = [list(map(int, input().split())) for _ in range(n)] # 행렬B result = '' # 결과값 변수 for i in range(n): for j in range(m): result += f"{arr1[i][j] + arr2[i][j]} " print(result) result = '' 행렬A와 B를 받아와서 이중 for 문으로 인덱스가 같은 요소들을 더해 문자열 변수에 넣어주고 출력해주었다. https://www.acmicpc.net/problem/2738 2738번: 행렬 덧셈..
# 서브태스크 1만 충족 n = int(input()) m = int(input()) s = input() target = 'I'+'I'.join('O' * n)+'I' cnt = 0 for i in range(m): if s[i:i+len(target)] == target: cnt += 1 print(cnt) # 100점 n = int(input()) m = int(input()) s = input() count, idx, result = 0, 0, 0 while idx < (m-1): if s[idx:idx+3] == 'IOI': idx += 2 count += 1 if count == n: result += 1 count -=1 else: idx += 1 count = 0 print(result) ..
n = int(input()) enter, out = {}, [] cnt = 0 for i in range(n): enter[input()] = i for _ in range(n): out.append(input()) for j in range(n): for k in range(j+1, n): if enter[out[j]] > enter[out[k]]: cnt += 1 break print(cnt) https://www.acmicpc.net/problem/2002 2002번: 추월 입력은 총 2N+1개의 줄로 이루어져 있다. 첫 줄에는 차의 대수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 대근이가 적은 차량 번호 목록이 주어지고, N+2째 줄부터 N개의 줄에는 영식이 www.a..
str = sorted(input()) letter_dic = {} start = '' mid = '' for i in str: if i in letter_dic: letter_dic[i] += 1 else: letter_dic[i] = 1 if len(list(filter(lambda x: x % 2 == 1,letter_dic.values()))) >= 2: print("I'm Sorry Hansoo") exit() for key, value in letter_dic.items(): if value % 2 != 0: mid += key start += key * (value // 2) else: start += key * (value // 2) print(start + mid + start[::-1]..
n, m = map(int, input().split()) no_listen, no_see = set(), set() for i in range(n): no_listen.add(input()) for j in range(m): no_see.add(input()) result = sorted(no_listen & no_see) print(len(result)) for name in result: print(name) https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www...
n = int(input()) n_ls = [] for i in range(n): n_ls.append(input()) m = int(input()) m_ls = [] for i in range(m): m_ls.append(input()) idx = n_ls.index('?') prev = idx-1 next = idx+1 for word in m_ls: if word in n_ls: continue # 기존에 사용한 단어인경우 if idx == 0: # 물음표가 첫번째일때 if len(n_ls) == 1: print(word) elif word[len(word)-1] == n_ls[next][0]: print(word) elif idx == len(n_ls) - 1: # 물음표가 마지막일때 if wor..