본문 바로가기
320x100

PS84

(코딩테스트) 파이썬 유용한 함수들 모음 마지막 수정 21.12.18 개요 파이썬으로 PS문제를 풀다 보면, 정말 다양한 함수들을 파이썬이 제공한다는 것을 알 수 있다. 앞으로 그런 함수들을 여기에 간단하게 정리해 놓는다. zip(iterable1, iterable2) 내장(built-in) iterable1 과 iterable2 를 순서대로 순회하면서 튜플로 반환한다. (3개 이상의 인자도 가능하다) li_a = ['a','b','c'] li_b = [1,2,3] for pair in zip(li_a,li_b): print(pair) # 출력 ('a',1) ('b',2) ('c',3) str1.startswith(str2) , str1.endswith(str2) 내장(bulit-in) 해당 str1이 str2로 시작하는지(혹은 끝나는지)의 여.. 2021. 6. 28.
[CLASS 4]백준 10830번 - 행렬 제곱 10830번 - 행렬 제곱 수학적 지식, 그중에서도 행렬에 대한 지식이 좀 필요한 문제이다. 먼저 행렬 곱의 과정에 대하여 알고 이를 구현할 수 있어야 하고, 푸는 방식에 따라 단위 행렬도 사용해야 한다. 그것들을 다 알고 있다면 꽤 익숙하고 유명한 분할 정복을 이용한 거듭제곱 문제이다. 컴퓨터는 2^16을 구한다고 할 때, 그냥 2를 16번 곱하는 것보다 (((2^2)^2)^2)^2 의 방식으로 구하는 것이 속도가 더 빠르다. 이를 이용하면 거듭제곱에서 O(n)을 O(logn)으로 획기적으로 줄일 수 있다. 내 코드: # dawitblog.tistory.com/161 from sys import stdin input = stdin.readline # 행렬 곱셈 def mat_multi(a,b): tem.. 2021. 6. 3.
[CLASS 4]백준 9935번 - 문자열 폭발 9935번 - 문자열 폭발 솔직히 상당히 쉬운 문제인데 너무 어렵게 접근한 감이 없지않아 있다. 먼저 스택을 사용해야 한다는 것만 떠올릴 수 있다면 쉽게 풀 수 있었다. 내 코드: # dawitblog.tistory.com/159 string, explosion = input(),input() explosion_length = len(explosion) str_stack,explosion_stack = [],[] str_pointer = -1 # 폭발 문자열이 하나의 문자일 경우 if len(explosion) == 1: string = string.replace(explosion,'') print(string if string else 'FRULA') exit() idx_dict = {} for i i.. 2021. 5. 31.
[CLASS 4]백준 2638번 - 치즈 2638번 : 치즈 그림을 보자마자 BFS 문제라는것을 유추할 수 있다. 처음에 문제를 대충 읽어서 가장자리에는 치즈가 없다는 사실을 모르고 풀어서 코드가 좀더 길고 시간복잡도도 컸는데, 후에 깨닫고 고쳐서 괜찮은 코드가 된 것 같다. 내 코드: # dawitblog.tistory.com/158 from sys import stdin from collections import deque input = stdin.readline R,C = map(int,input().split()) mat = [] for _ in range(R): mat.append(list(map(int,input().split()))) time = 0 moves = [(0,1),(0,-1),(1,0),(-1,0)] def bfs(st.. 2021. 5. 20.