파이썬
[백준 파이썬] #1018 체스판 다시 칠하기
풀기 전 생각해보기😮 이차원 배열의 탐색 풀이🛫 N, M = map(int, input().split()) # N개의 행, M개의 열 arr = [list(input()) for _ in range(N)] white = [[0] * 8 for _ in range(8)] black = [[0] * 8 for _ in range(8)] for col in range(8): for row in range(8): if (col+row)%2 == 0: white[col][row] = 'W' black[col][row] = 'B' else: white[col][row] = 'B' black[col][row] = 'W' li = [] for col in range(N-8+1): for row in range(M-8+..
[백준 파이썬] #2605 줄세우기
풀기 전 생각해보기😮 insert 함수를 이용해서 리스트의 원하는 인덱스 지점에 값을 추가할 수 있다. 풀이🛫 N = int(input()) arr = list(map(int, input().split())) li = [] for i in range(N): if i == 0: li.insert(0, i+1) else: li.insert(arr[i], i+1) for i in reversed(li): print(i, end=" ") 핵심 정리🎁 N = int(input()) arr = list(map(int, input().split())) li = [] for i in range(N): li.insert(-arr[i], i+1) print(*li) 위 코드 처럼 insert의 음수를 이용해서 출력했을 때..
[SWEA] #10989. 폭격 작전_파이썬
풀기 전 생각해보기😮 IM 시험 대비 델타 값 이용해서 방향 탐색 visited 활용해서 계산 중복 방지하기 풀이🛫 # U, R, D, L dcol = [-1, 0, 1, 0] drow = [0, 1, 0, -1] T = int(input()) for t in range(T): N, M = map(int, input().split()) arr = [list(map(int, input().split())) for _ in range(N)] visited = [[0] * N for _ in range(N)] kills = 0 for m in range(M): C, R, P = map(int, input().split()) # 폭탄이 떨어진 곳의 피해값 if visited[C][R] == 0: kills +=..
[백준 파이썬] #2309 일곱 난쟁이
풀기 전 생각해보기😮 아홉명 중 조건에 적합하지 않은 2명을 어떻게 구분할까? 풀이🛫 arr = [int(input()) for i in range(9)] arrSum = 0 odd1, odd2 = 0, 0 # 정렬 : 버블 정렬 사용 연습 for i in range(9): for j in range(i+1, 9): if arr[i] > arr[j]: arr[i], arr[j] = arr[j], arr[i] for i in arr: arrSum += i for i in range(9): for j in range(i+1, 9): if arr[i]+arr[j] == arrSum-100: odd1, odd2 = arr[i], arr[j] for i in arr: if i == odd1 or i==odd2: ..
[파이썬] The Zen of Python
파이썬 코딩을 실행시켜보다가 놀랐다. 내가 언제 저런걸 출력시켰던가? 범상치 않은 운율이 느껴져서 저 문구를 찾아보기로 했다. 구글에서 The Zen of python (파이썬의 선)으로 쉽게 검색할 수 있었다. The Zen of Python, by Tim Peters Beautiful is better than ugly. 아름다움이 추한 것보다 낫다. Explicit is better than implicit. 명확함이 함축된 것보다 낫다. Simple is better than complex. 단순함이 복잡한 것보다 낫다. Complex is better than complicated. 복잡함이 난해한 것보다 낫다. Flat is better than nested. 단조로움이 중접된 것보다 낫다. ..
[알고리즘] DFS 구현
# V개의 노드, E개의 간선이 주어질 때 V, E = map(int, input().split()) graph = [[] for i in range(V+1)] # 그래프 구성 for e in range(E): u, v = map(int, input().split()) graph[u].append(v)# 단방향일 때 #graph[v].append(u)# 양방향일 때 # 방문 정보를 저장할 공간 visited = [0] * (V+1)# 인덱스 에러(혼동)을 방지하기 위해 V+1만큼 메모리 생성 # DFS 함수 구성 def dfs(v): # 해당 정점을 방문 visited[v] = 1; # print(v, end=" "); # 방문 정보가 궁금할 때 확인 가능 # v의 방문하지 않은 인접 정점을 탐색 for..
[백준 파이썬] #4396 지뢰 찾기
풀기 전 생각해보기😮 지뢰가 있을 경우 모든 지뢰의 위치 표시 이차원 배열의 방향 탐색 풀이🛫 N = int(input()) mine = [list(input()) for i in range(N)]# 지뢰의 위치 open = [list(input()) for i in range(N)]# 지뢰가 있는지 확인한 위치 zone = [[0 for i in range(N)] for j in range(N)]# 플레이어가 보는 위치 # U UR R DR D DL L UL dcol = [1, 1, 0, -1, -1, -1, 0, 1] drow = [0, 1, 1, 1, 0, -1, -1, -1] for col in range(N): for row in range(N): # 지뢰가 있는 곳 주위의 값 표시 if min..
[SWEA] #4866. 괄호 검사_파이썬
풀기 전 생각해보기😮 stack 구조 활용하기 풀이🛫 T = int(input()) for t in range(T): text = input() stack = [] for i in text: if i == "{" or i == "(": stack.append(i) elif stack and i == "}" and stack[-1] == "{": stack.pop() elif stack and i == ")" and stack[-1] == "(": stack.pop() elif i == "}" or i == ")": stack.append(i) if stack: # stack의 길이가 0이 아님 : 오답 answer = 0 else: # stack의 길이가 0 : 정답 answer = 1 print(f"#..
[SWEA] #1216. 회문 2_파이썬
풀기 전 생각해보기😮 유사문제 : 2022.08.16 - [SSAFY/SWEA] - [SWEA] #4861. 회문_파이썬 팰린드롬 구현하기 풀이🛫 # 회문 2 T = 10 for t in range(T): tc = int(input()) arr = [list(input()) for i in range(100)] totalLi = [] for col in range(100): for row in range(100): # 짝수 개가 같을 때 if arr[col][row-1] == arr[col][row]: l = 1 while 0
[SWEA] #4861. 회문_파이썬
풀기 전 생각해보기😮 이차원 배열에서 회문 찾기 풀이🛫 T = int(input()) for t in range(T): N, M = map(int, input().split()) arr = [list(input()) for i in range(N)] li = [] # row 방향 탐색 for col in range(N): for row in range(N): # M이 짝수일 때 if M%2==0 and arr[col][row-1] == arr[col][row]: l = 1 while 0