백준 온라인저지 점프왕 쩰리(small) 문제풀러 바로가기👇👇👇👇👇👇 점프왕 쩰리(Small) 문제풀이 from collections import deque n = int(input()) graph = [] for i in range(n): graph.append(list(map(int, input().split()))) dx = [1, 0] dy = [0, 1] def bfs(x, y): queue = deque() queue.append((x, y)) visit = [[False]*n for _ in range(n)] while queue: x, y = queue.popleft() move = graph[x][y] if move == -1: return True for i in range(2): nx..
1. 스택 스택이란? 스택은 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조(LIFO - Last In First Out)으로 되어 있다. 자료를 넣는 것을 '밀어넣는다' 하여 푸쉬(push)라고 하고 반대로 넣어둔 자료를 꺼내는 것을 팝(pop)이라고 하는데, 이때 꺼내지는 자료는 가장 최근에 푸쉬한 자료부터 나오게 된다. 이처럼 나중에 넣은 값이 먼저 나오는 것을 LIFO 구조라고 한다. 반대로 FILO(First In Last Out)라고 하기도 한다. 파이썬으로 구현 append() 메소드와 pop()메소드만 사용할 수 있으면 간단히 리스트로도 구현할 수 있다. 아래의 예시를 보자 stack = [] stack.append(1) stack.append(2) stack.append(3) sta..
1. 경우의 수 permutations() - 순열 순열은 순서를 고려해서 뽑는 경우의 수다. nPr 로 쓰이는데 이를 풀어서 말하면 n개 중 순서를 고려하여 r개를 뽑는 것을 말한다. -예시 num = [2,1,3,4,1] result = list(itertools.permutations(num, 2)) - 결과값 >> [(2, 1), (2, 3), (2, 4), (2, 1), (1, 2), (1, 3), (1, 4), (1, 1), (3, 2), (3, 1), (3, 4), (3, 1), (4, 2), (4, 1), (4, 3), (4, 1), (1, 2), (1, 1), (1, 3), (1, 4)] 1이 2개 있기때문에 중복된 결과가 나온다. combinations() - 조합 조합이라고 하면 nC..
1. 람다식에 대한 기본적인 이해 람다식을 통해 익명함수를 만드는 법에 대해서 알아보자. 람다식은 함수 표현을 간단하게 만들어줄 수 있다. 한 줄 짜리 함수에 많이 사용되는 편이다. 일단 일반 함수와 비교하기 위해 예시를 들도록 하겠다. def square(x): return x * x print(square(4)) >> 16 정사각형의 넓이를 구하는 square다. 이를 아래와 같은 람다식으로 표현할 수 있다. print((lambda x : x*x)(4)) >> 16 람다식을 재할당하고 싶으면 따로 저장할 수도 있다. square = (lambda x : x*x) print(square(4)) >> 16 또한, 한 줄(one-line) 조건문을 사용하여 람다식을 표현하는 것도 가능하다. 아래의 예시를..