Algorithm36 [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. [Programmers / Level2] 짝지어 제거하기 https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(s): s_list = list(s) idx = 0 while True: if idx == len(s_list): break if idx >= 1 and (s_list[idx] == s_list[idx-1]): del s_list[idx-1:idx+1] idx = 0 continue idx += 1 if not s_list: return 1 return 0 -> 단순하게 문.. 2024. 1. 19. [Programmers / Level2] 피보나치 수 https://school.programmers.co.kr/learn/courses/30/lessons/12945 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def fibonacci(n): fib_arr = [0] * 100001 fib_arr[1] = 1 for i in range(2, n+1): fib_arr[i] = fib_arr[i-2] + fib_arr[i-1] return fib_arr[n] def solution(n): return fibonacci(n) % 1234567 -> good old friend 피보나치 수 문제였다 dp로 푸는.. 2024. 1. 18. [Programmers / Level2] 숫자의 표현 https://school.programmers.co.kr/learn/courses/30/lessons/12924 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(n): result = 0 for start in range(1, n+1): summation = 0 for i in range(start, n+1): summation += i if summation == n: result += 1 break elif summation > n: break return result 브루트포스 문제인데 문제를 이상하게 읽었다. 연속한 자연수라.. 2024. 1. 17. 이전 1 2 3 4 5 6 다음 반응형