본문 바로가기

programmers11

[Programmers / Level2] 캐시 https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(cacheSize, cities): if cacheSize == 0: return len(cities) * 5 cache = [] time = 0 for city in cities: city = city.lower() if city in cache: cache.remove(city) cache.append(city) time += 1 else: time += 5 if len.. 2024. 1. 30.
[Programmers / Level2] 의상 코딩테스트 연습 - 의상 | 프로그래머스 스쿨 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(clothes): cloth = {} for stuff, wear in clothes: if wear in cloth: cloth[wear] += 1 else: cloth[wear] = 1 result = 1 for count in cloth.values(): result *= (count + 1) return result - 1 해시를 이용한 조합문제이다. 조합을 구하는 센스가 필요했다. Counter 클래스 또는 for문을 통해 일단 딕.. 2024. 1. 29.
[Programmers / Level2] 할인 행사 https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from collections import Counter def solution(want, number, discount): result = 0 goods, sum_num = {}, sum(number) for product, cnt in zip(want, number): goods[product] = cnt counter_goods = Counter(goods) for i in range(le.. 2024. 1. 27.
[Programmers / Level2] n^2 배열 자르기 https://school.programmers.co.kr/learn/courses/30/lessons/87390 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from itertools import chain def solution(n, left, right): list_n = [[0] * n for _ in range(n)] for i in range(n): for j in range(n): list_n[i][j] = max(i, j) + 1 return (list(chain.from_iterable(list_n))[left:right+1]) -> 시.. 2024. 1. 26.
[Programmers / Level2] 연속 부분 수열 합의 개수 https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(elements): len_elem = len(elements) sums = set() for incremental in range(1, len_elem + 1): for i in range(len_elem): sum_val = 0 for j in range(incremental): sum_val += (elements[(i + j) % len_elem]) sums.add.. 2024. 1. 25.
[Programmers / Level2] 구명보트 https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(people, limit): people.sort() i, j, boat = 0, len(people) - 1, 0 while True: if i > j: return boat if people[i] + people[j] 투포인터를 활용한 그리디 알고리즘이다. 정렬된 형태에서 limit 이하의 값을 만나게 된다면 인덱스되는 값들을 하나씩 늘려가는 식으로 진행된다. 양끝을 가.. 2024. 1. 21.
반응형