본문 바로가기

Python15

[프로그래머스][파이썬] 2 x n 타일링 https://school.programmers.co.kr/learn/courses/30/lessons/12900 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(n): arr = [1,2] for _ in range(3, n+1): arr.append((arr[-1] + arr[-2]) % 1000000007) return arr[n-1] 규칙만 찾으면 생각보다 쉽게 풀 수 있는 문제다. 경우의 수가 [1, 2, 3, 5, 8 ...] 형태로 증가하므로 arr[-1], arr[-2]을 더한 값을 구하면 된다. 다만 효율성 테스트를 .. 2023. 12. 30.
[프로그래머스][파이썬] 숫자 변환하기 https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(x, y, n): answer = 0 arr = [x] while True: s = set() flag = 0 for num in arr: if num == y: return answer if num < y: flag = 1 s.add(num+n) s.add(num*2) s.add(num*3) #x를 2로 만들 수 없는 경우 if flag == 0: return -1 an.. 2023. 12. 29.
[프로그래머스][파이썬] 땅따먹기 https://school.programmers.co.kr/learn/courses/30/lessons/12913 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(land): for i in range(1, len(land)): land[i][0] += max(land[i-1][1], land[i-1][2], land[i-1][3]) land[i][1] += max(land[i-1][0], land[i-1][2], land[i-1][3]) land[i][2] += max(land[i-1][0], land[i-1][1], land[i-.. 2023. 12. 20.
[프로그래머스][파이썬] 주식가격 https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(prices): answer = [0] * len(prices) stack = [] for idx, price in enumerate(prices): if idx == len(prices) - 1 : #마지막 초는 0초이므로 종료 return answer while len(stack) > 0 and prices[stack[-1]] > price: stack.pop() sta.. 2023. 12. 20.
[프로그래머스][파이썬] 기능개발 https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(progresses, speeds): answer = [] n = 0 #배포할 기능 개수 for i in range(len(progresses)): if progresses[i] >= 100: #개발된 기능 count n += 1 else: answer.append(n) #앞에서 개발된 기능 배포 n = 1 while progresses[i] < 100: for j in r.. 2023. 12. 11.
[프로그래머스][파이썬] 캐시 https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(cacheSize, cities): answer = 0 lower_cities = [] arr = [] #도시명을 소문자로 변환 for city in cities: lower_cities.append(city.lower()) #캐시 교체 알고리즘 for city in lower_cities: #cache hit if city in arr: arr.remove(city) an.. 2023. 12. 8.