dynamic programming(8)
-
[Programmers] Lv2. 땅따먹기 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 입력으로 주어지는 배열 크기가 최대 \( 100,000 \times 4 \) 이기 때문에 DFS으로는 시간 초과가 걸릴 것 같더라구요. 유망하지 않은 부분은 가치지기를 하면 시간을 줄일 수 있겠지만, 기준을 어찌해야 할 지 모르겠었습니다. 그리디(Greedy)로도 현재 선택지가 최선의 선택지라는 보장이 없기에 못 사용하구요. 그래서 동적 프로그래밍(Dynamic Programming)을 한 번 사용해 봤습니다. 땅(land)의 첫 행은 dp에 그대로 저장해둔다. 현재 행과 열을..
2023.06.22 -
[Programmers] Lv2. 피보나치 수 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 전략 입력 데이터 범위가 최대 10만 인 걸 고려하면, 재귀로는 절대 못 구하니 DP(Dynamic Programming)으로 풀었습니다. 1234567로 나눈 나머지를 리턴하라는 걸로 보아, 오버플로우를 조심해야겠다고 생각했구요. ✏️소스 코드 및 결과 #include using namespace std; const int DIVISION = 1234567; int solution(int n) { vector F(n + 1); F[0] = 0; F[1] = 1; for (int i..
2023.06.12