본문 바로가기

알고리즘

(117)
[Python] n진수 게임 https://school.programmers.co.kr/learn/courses/30/lessons/17687 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # n 진수 게임 # n 진수로 숫자 변환 함수 def n_radix(n, num): a = num num_ = '' num2alpha = {10:'A', 11:'B', 12:'C', 13:'D', 14:'E', 15:'F'} while a > 0: rest = a % n a = a//n if rest < 10: num_ += str(rest) else: num_ += num2alpha[rest]..
[Python] 주차 요금 계산 https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 주차 요금 계산 import math def solution(fees, records): answer = [] car_history = {} car_list = [i.split() for i in records] car_list.sort(key= lambda x : x[1]) # 차 번호와 출입 시간이 기록된 딕셔너리 for car in car_list: if car[1] not in car_..
[Python] 연속 부분 수열 합의 개수 https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 연속 부분 수열 합의 개수 def solution(elements): answer = 0 circle_ele = elements + elements seq_len = 2 sum_set = set(elements+[sum(elements)]) while seq_len < len(elements): for i in range(len(elements)): sum_set.add(sum(circle_..
[Python] 가장 가까운 같은 글자 https://school.programmers.co.kr/learn/courses/30/lessons/142086 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(s): answer = [] chr_dict = {} for idx, chr_ in enumerate(s): if chr_ not in chr_dict: answer.append(-1) chr_dict[chr_] = idx else: dist = idx - chr_dict[chr_] answer.append(dist) chr_dict[chr_] = idx return an..
[Python] 오픈 채팅방 https://school.programmers.co.kr/learn/courses/30/lessons/42888 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 첫 번째 풀이(실패) from collections import defaultdict def solution(record): answer = [] user_dict = defaultdict(list) for i in record: a = i.split() if a[0]=='Enter': if a[1] not in user_dict: user_dict[a[1]].append([a[2],'님이 들어왔..
[Python] 피로도 https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 첫 번째 풀이(틀림) def solution(k, dungeons): answer = 0 t_list = [(i, x[0]-x[1]) for i, x in enumerate(dungeons)] t_list = sorted(t_list, key=lambda x : x[1], reverse=True) for i in t_list: if dungeons[i[0]][0]
[Python] 푸드 파이트 https://school.programmers.co.kr/learn/courses/30/lessons/134240 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 푸드 파이트 def solution(food): answer = '0' for i in range(1, len(food)): n_food = food[-i] // 2 answer = str(len(food)-i) * n_food + answer + str(len(food)-i) * n_food return answer
[Python] 귤 고르기 https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 귤 고르기 from collections import Counter def solution(k, tangerine): answer = 0 count = sorted(Counter(tangerine).items(),reverse = True, key = lambda x : x[1]) for key, value in count: if k