본문 바로가기

전체 글102

[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/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(k, tangerine): tangerine.sort() frequency = {} for num in tangerine: if num in frequency: frequency[num] += 1 else: frequency[num] = 1 ret_val = set((sorted(tangerine, key=lambda x: frequency[x], reverse = Tru.. 2024. 1. 24.
[Programmers / Level2] N개의 최소공배수 https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(arr): total, common_val = 1, 1 for i in range(2, min(arr) + 1): for value in arr: if value % i != 0: break common_val *= i break for value in arr: total *= value // common_val return total * common_val -> 오랫만에 .. 2024. 1. 23.
[Programmers / Level2] 예상 대진표 https://school.programmers.co.kr/learn/courses/30/lessons/12985 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(N, A, B): round = 1 # 초기 라운드는 1로 시작 while A != B: A = (A + 1) // 2 # A의 새 번호 B = (B + 1) // 2 # B의 새 번호 round += 1 # 라운드 증가 return round - 1 # A와 B가 만나는 라운드 반환 센스가 필요한 문제였다 2024. 1. 22.
[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.
[Programmers / Level2] 점프와 순간이동 https://school.programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(n): cnt = 0 while True: if n == 0: return cnt elif n % 2 == 1: n = n - 1 cnt += 1 else: n = n // 2 -> 맞게 접근한 것 같은데 결을 못 맺어서 아쉽다. 짝/홀 에 대한 판단은 섰었는데 그리디한방법을 bottom-up으로 접근해서 많이 해맸다. 채찍선생님은 아래와 같이 dp로도 풀 수 있다고 말씀하.. 2024. 1. 20.
반응형