본문 바로가기

알고리즘/프로그래머스

(72)
[Python] 다트 게임 https://school.programmers.co.kr/learn/courses/30/lessons/17682 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(dartResult): answer = 0 result = [] each_dart = [] for i in dartResult: if each_dart==[]: each_dart.append(i) else: if each_dart[-1].isdigit() and i.isdigit(): each_dart[-1] = each_dart[-1] + i elif not i.isdig..
[Python] k진수에서 소수 개수 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/92335 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # k진수에서 소수 개수 구하기 import math def solution(n, k): answer = 0 k_num = '' while n > 0: n_rest = n % k k_num += str(n_rest) n = n//k k_num = k_num[::-1] candidate = [word for word in k_num.split('0') if word != '1' and word !=..
[Python] 야근 지수 https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 첫 번째 풀이(시간 초과) # 야근 지수 # 효율성 통과 못함... def solution(n, works): answer = 0 for _ in range(n): if sum(works)==0: return 0 works[works.index(max(works))] -= 1 for i in works: if i!=0: answer += i**2 return answer 두 번째 풀이(통과) # ..
[Python] 크기가 작은 부분 문자열 https://school.programmers.co.kr/learn/courses/30/lessons/147355 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 크기가 작은 부분 문자열 def solution(t, p): answer = 0 sub_seq = [] for i in range(len(t)-len(p)+1): sub_seq.append(t[i:i+len(p)]) for j in sub_seq: if j
[Python] 전화번호 목록 https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 첫 번째 풀이 (효율성 3, 4에서만 시간초과) import re def solution(phone_book): phone_book = sorted(phone_book, key=lambda x : len(x)) for i in range(len(phone_book)-1): pattern = re.compile({phone_book[i]}) for j in range(i+1, len(phone_bo..
[Python] 실패율 https://school.programmers.co.kr/learn/courses/30/lessons/42889 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(N, stages): fail_rate_list = [] for i in range(1, N+1): fail_cnt = stages.count(i) challenger = len([x for x in stages if x >= i]) if challenger == 0: fail_rate = 0 else: fail_rate = fail_cnt / challenger fail_..
[Python] 콜라 문제 https://school.programmers.co.kr/learn/courses/30/lessons/132267 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 콜라 문제 def solution(a, b, n): answer = 0 while n >= a: new = n // a *b rest = n % a answer += new n = new + rest return answer
[Python] 소수 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/12977?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 소수 만들기 from itertools import combinations def solution(nums): answer = 0 sum_list = [] for i in combinations(nums, 3): sum_list.append(sum(i)) for j in sum_list: error = 0 if j == 1: continue else: for k ..