본문 바로가기
반응형

프로그래머스/2단계108

(Python/LV2) 후보키 코드 문제 출처:https://school.programmers.co.kr/learn/courses/30/lessons/42890 풀이: 첫 시도: from itertools import combinations def solution(relation): row = len(relation) # 행 col = len(relation[0]) # 열 #가능한 속성의 모든 인덱스 조합 combi = [] for i in range(1, col+1): combi.extend(combinations(range(col), i)) arr = set() for i in combi: tmp = [tuple([item[key] for key in i]) for item in relation] if row == len(set(tmp.. 2022. 12. 6.
(Python/LV2) 타겟넘버 문제 출처: 풀이: bfs 이용 def solution(numbers, target): first = [0] for i in numbers: lst = [] for j in first: lst.append(j+i) lst.append(j-i) first = lst return first.count(target) 0 0+1 , 0-1 0+1+1, 0+1-1 0-1+1 , 0-1-1 이런식으로 first를 바꿔주면 된다 큐 bfs 이용 from collections import deque def bfs (numbers, target): res = 0 q = deque() length = len(numbers) q.append([-numbers[0], 0]) q.append([+numbers[0], 0]) w.. 2022. 12. 2.
(Python/LV2) 점 찍기 문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/140107 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이: 첫 시도인 만큼 정답 맞추기에 집중했다. 62.5점 def solution(k, d): list = set() angle = d**2 # 제곱 same_count = 0 for i in range(0,d,k): for j in range(i,d+1,k): if (i**2)+(j**2) 2022. 12. 2.
(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.
반응형