본문 바로가기
반응형

전체 글573

[알고리즘] 비트마스킹 - 파이썬 비트마스킹을 활용하여 원소의 개수 n이 주어질 때 모든 조합의 경우의 수를 구할 수 있다. n = 4 for i in range(1 2021. 9. 9.
[카카오 기출] 후보키 https://programmers.co.kr/learn/courses/30/lessons/42890 코딩테스트 연습 - 후보키 [["100","ryan","music","2"],["200","apeach","math","2"],["300","tube","computer","3"],["400","con","computer","4"],["500","muzi","music","3"],["600","apeach","music","2"]] 2 programmers.co.kr 왤케 오래걸리고 어려웠을까.. 일단 버벅인 원인 중 하나가 for문을 너무 여러번 쓰다보니 내가 쓴 것마저 헷갈렸다는 것. 리스트 컴프리헨션을 잘 활용해야 코드 양도 줄고 이해도 더 쉬워질 것 같다. import collections imp.. 2021. 9. 9.
[분할 정복] 백준 10830번: 행렬 제곱 https://www.acmicpc.net/problem/10830 10830번: 행렬 제곱 크기가 N*N인 행렬 A가 주어진다. 이때, A의 B제곱을 구하는 프로그램을 작성하시오. 수가 매우 커질 수 있으니, A^B의 각 원소를 1,000으로 나눈 나머지를 출력한다. www.acmicpc.net import collections n, b = map(int, input().split()) a = [] for i in range(n): a.append(list(map(int, input().split()))) dct = collections.defaultdict(list) dct[1] = a def cross(m1, m2, n1, n2): result = [[0 for _ in range(n)] for _.. 2021. 9. 8.
[카카오 기출] 기둥과 보 설치 https://programmers.co.kr/learn/courses/30/lessons/60061 코딩테스트 연습 - 기둥과 보 설치 5 [[1,0,0,1],[1,1,1,1],[2,1,0,1],[2,2,1,1],[5,0,0,1],[5,1,0,1],[4,2,1,1],[3,2,1,1]] [[1,0,0],[1,1,1],[2,1,0],[2,2,1],[3,2,1],[4,2,1],[5,0,0],[5,1,0]] 5 [[0,0,0,1],[2,0,0,1],[4,0,0,1],[0,1,1,1],[1,1,1,1],[2,1,1,1],[3,1,1,1],[2,0,0,0],[1,1,1,0],[2,2,0,1]] [[ programmers.co.kr 너무 빡코딩이라 스트레쓰를 받는다. 맨정신엔 못푼다. def solution(n, .. 2021. 9. 7.
[카카오 기출] 가사 검색 https://programmers.co.kr/learn/courses/30/lessons/60060 코딩테스트 연습 - 가사 검색 programmers.co.kr 무식한 방법을 처음에 시도했다. word = 'apple'이라면 딕셔너리의 키로 '?????', '?pple', '??ple', '???le', '????e', 'appl?', 'app??', 'ap???', 'a????' 을 만들어서 이 value값에 1을 추가해준다. 이 방법은 정확성은 통과되지만 효율성은 통과하지 못한다. import collections def solution(words, queries): dct = collections.defaultdict(int) for word in words: temp = [x for x in .. 2021. 9. 7.
[자료구조] 트라이(Trie) 구현 - 파이썬 트라이(Trie): 검색트리의 일종으로 일반적으로 키가 문자열인, 동적 배열 또는 연관 배열을 저장하는 데 사용되는 정렬된 트리 자료구조다. class Node: def __init__(self): self.word = False self.children = {} class Trie: def __init__(self): self.root = Node() def insert(self, word): node = self.root for char in word: if char not in node.children: node.children[char] = Node() node = node.children[char] node.word = True def search(self, word): node = self.r.. 2021. 9. 7.
반응형