목록코딩 테스트/문제풀이 Python ver. (7)
개발 무지렁이

데스나이트 / BFS 🍥 🎠. 'queue'를 이용해서 'BFS'를 구현할 줄 알아야 한다 => 'queue = deque()' 🎠. queue의 'depth(?)'를 구할 줄 알아야 한다. => 'leng = len(queue)', 'for in 문' from collections import deque N = int(input()) cur_x, cur_y, target_x, target_y = list(map(int, input().split())) dx = [-2, -2, 0, 0, 2, 2] dy = [-1, 1, -2, 2, -1, 1] # arr2d = [[0]* N] * N # visited = [[Fals..

오큰수 / 스택 🥞 🎠. '스택(Stack)'에 값이 아닌 '인덱스(index)'를 넣어 문제를 해결할 줄 알아야 한다. [시간초과 난 코드.py] N = int(input()) stack = list(map(int, input().split())) # print(stack) len = len(stack) res = [] ano_stack = [] for i in range(len): # print("res:", res) cur = stack.pop() # print("cur:", cur) if i == 0: res.append(-1) ano_stack.insert(0, cur) continue # print("ano_stack", ano_stack) flag = 0 for ..

수열 / 슬라이딩 윈도우 🚠 🎠. '슬라이딩 윈도우'알고리즘을 구현할 줄 알아야한다 => '이전의 계산한 결과'를 최대한 이용하는 방식으로 [시간초과 난 코드.py] N, K = map(int, input().split()) tempers = list(map(int, input().split())) # print(tempers) sum_prev = sum(tempers[:K]) for i in range(1, len(tempers)-K): cur = sum(tempers[i:K+i]) sum_prev = max(sum_prev, cur) print(sum_prev) 🤡. 실수한 부분 : 이전에 계산한 결과를 써먹지 못했다. [성공한 코드.py] N, K = map(int, i..

치킨배달 / 조합 🛒 🎠. 'itertools 모듈'을 이용해 'combinations()'를 사용하여 조합을 구할 줄 알아야 한다. 🎠. 조합을 구해 '각 경우를 돌 때', 이 for in문은 '가장 바깥에' 위치해야 한다. => '경우에 따른 결과'를 구해야 함으로 🎠. 이전 값과 비교할 때, '이전값을 할당하는 변수'는 'for in문 바깥'에 위치해야 한다. => '(현재값과 이전값에 대한)'비교는 for in문 안에서 import itertools import sys N, M = map(int, input().split()) arr2d = [] for _ in range(N): ar..

모음사전 / DFS ⚓ 🎠. for in 반복문에서 '문자열'도 문자 하나씩 빼올 수 있다. 🎠. python '슬라이싱(slicing)' 방법을 알아야 한다. 🎠. dfs 알고리즘을 구현할 줄 알아야 한다 => '종료조건 + 재귀적 확장' 🎠. '지역 네임스페이스' 내에서 '전역변수의 값의 할당'하는 방법을 알아야 한다 => 'global' vowels = 'AEIOU' cnt = 0 g_word = "" res = 0 def dfs(s): global cnt, res if s == g_word: # print("res:", cnt) res = cnt return cnt += 1 # print(s) # ..

피로도 / 완전탐색 순열 🍔 🎠. 'itertools 모듈'을 이용해 'permutations()' 메서드를 이용할 줄 알아야 한다 => '순열' 🎠. 'max() 빌트인 함수'를 이용해 '현재값'을 '이전값'과 비교해서, 큰 값을 '이전값'으로 넣어서 '최대값'을 찾는다. import itertools def solution(k, dungeons): length = len(dungeons) # 순열 res = itertools.permutations(dungeons, length) perm = list(res) # print(perm) prev = 0 for case in perm: fat..