알고리즘/프로그래머스
[PGS] 42883번 : 큰 수 만들기
문제 https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결 방법 이 문제는 스택을 이용하여 푸는 문제다 주어진 연속된 숫자 중에서 뽑을 수 있는 가장 큰 수를 구하는 방법으로 숫자를 하나씩 스택에 넣으면서 값을 비교한다. 처음에는 combinations 를 이용해서 모든 경우의 수를 도출하여 계산하는 방식을 이용했지만 역시 시간초과로 인해 성공하지 못했다. (역시 만만치 않다) 따라서, 다시 생각해 본 결과 아래와 같은 방법으로 코드를 작성해서..
[DP] 12900번 : 2 x n 타일링
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12900 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결 방법 해당 문제는 테스트 케이스로 주어진 N=4인 경우까지 가능한 타일의 갯수를 생각해도 규칙을 찾을 수 있는 문제다. N=1,2 인 경우를 제외하고는 N=3 이상인 경우에는 DP[N] = DP[N-2] + DP[N-1] 같은 계산식을 통해 정답을 구할 수 있다. [전체 코드] def solution(n): DP = [1,2] + [0]*(n-2) for i in range(3,n+1)..