본문 바로가기
반응형

프로그래머스237

(Python/LV1) 문자열 나누기 문제 출처:https://school.programmers.co.kr/learn/courses/30/lessons/140108 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이: 처음에는 딕셔너리와 Counter.mostcommon 을 사용하려 하는데 몇개씩 틀려서 다시 풀었다. 그 코드 사라져버림 from collections import deque def solution(s): x = deque([i for i in (s)]) main, count = ["", 0, 0,], 0 while x: i = x.popleft() if main[0] =="".. 2022. 12. 2.
(Python/이진트리)이진트리(2) 2) 넓이 우선 순회 원칙 - 수준이 낮은 노드를 우선으로 방문 - 같은 수준의 노드들 사이에는 부모 노드 방문순서에 따라 방문 왼쪽이 오른쪽보다 우선 dfs 와 유사 재귀적 비효율 한 노드를 방문할때 나중에 방문할 노드들은 순서대로 기록해둬야함 >> 큐(queue) 사용 스택에 a ,b, c 순서로 들어가고 내려갈 자식노드가 없으면 큐에스 팝해주고 하는식 구현 문제 import queue class ArrayQueue: def __init__(self): self.data = [] def size(self): return len(self.data) def isEmpty(self): return self.size() == 0 def enqueue(self, item): self.data.append(it.. 2022. 12. 1.
(Python/이진트리)이진트리(1) size() - 노드의 수 depth() 트리의 깊이 traversal : 순회 Node 는 Data ,leftchild, rightchild 를 가진다. 순회 종류: 1.깊이 우선순회 중위 순회 : 가운데 자기자신 left > 자신 > right 전위 순회 : 자기자신 먼저 후위 순회 : 자기자신이 맨 마지막 D에 입장에서 생각했을때 자기자신 D를 맨 마지막에 방문하고 그 다음 B에 left , right, 자신 순서니깐 D 다음에 B가 아닌 E 부터 방문한다. 1-1 depth 구현 class Node: def __init__(self, item): self.data = item self.left = None self.right = None def size(self): l = self.left.siz.. 2022. 12. 1.
(Python/LV2) 교점에 별 만들기 문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/87377 풀이: from itertools import combinations def meet_spot(x, y): a,b,c = x # ax+by=c d,e,f = y # dx+ey=f if a*e == b*d: return x = (b * f - c * e) / (a * e - b * d) y = (c * d - a * f) / (a * e - b * d) if x== int(x) and y == int(y) : return int(x), int(y) def solution(line): xy_spot = set() # 교점에 들어갈것들 for a, b in list(combinatio.. 2022. 12. 1.
(Python/LV2) k 진수에서 소수 개수 구하기 문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/92335 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이: 실패 코드 def sosu(k): if k < 2: return 0 else: for i in range(2, k): if k%i == 0: return 0 return 1 def solution(n, k): change_n = "" while n: # 숫자를 k진법으로 변환 change_n = str(n%k) +change_n n = (n//k) count = 0 list =.. 2022. 11. 30.
(Python/LV2) 혼자 놀기의 달인 문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/131130 풀이: 틀린 풀이. import copy def solution(cards): res = [] copy_cards = copy.copy(cards) for i in range(len(cards)): left = 0 while cards[i] != 0: next = cards[i] -1 cards[i], i = 0, next left += 1 res.append(left * (len(cards)-left-1)) cards = copy.copy(copy_cards) res.sort() return res[-1] res.append(left * (len(cards)-left-1)) .. 2022. 11. 28.
반응형