문제 https://school.programmers.co.kr/learn/courses/30/lessons/12900 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 입출력 해설 타일링 문제이고 전형적인 DP문제이다. 문제에서 주어지는 타일은 2 * 1, 1 * 2 타일 2가지이다.그럼 만들 수 있는 모양의 가짓수는 이전의 모양에서 1 * 2를 사용하여 만드는 것과 2 * 1 모양 2개를 이용하여 만드는 방법이 있다. DP[i] := 2 * i 타일을 채우는 가짓 수라고 할 때 위 그림 같은 2가지 방법이 있다.DP[i] := DP[i - 1] + DP[i - 2] 가 된다. 정답코드더보기''''25. ..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/154538# 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 입출력 해설 x에서 y로 변환할 때 필요한 최소 연산 횟수를 구하는 문제이다. 해당 문제에서는 아래와 같은 3가지 연산이 가능하다.x에 n을 더한다.x에 2를 곱한다x에 3을 곱한다해당 연산들은 각각 1씩 가중치를 가진다. DP를 통한 풀이가 가능하며 DP 테이블은 다음과 같이 정의한다.DP[i] := i를 만들 때 필요한 최소 연산 횟수 DP테이블은 위에 연산을 통해서 채워나가면 된다. 정답코드더보기''''25. 10. 17.(금)1. x ..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12913 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 입출력 해설 N행에 4열에 같은 열을 연속해서 밟지 않고 최고점을 얻는다고 할 때 몇 점인지 알아내는 문제이다. X행 Y열에 도착했을 때 얻을 수 있는 최고점이라고 DP 테이블을 정의하고 풀이를 진행하면 된다. 필자는 DP를 재귀방식으로 구현하였다.매개변수는 행(row), 열(col), 경계면(boundary)을 넣어주었다. DP의 로직은1. 현재 행이 경계면에 도착했는지 2. 현재 행, 열에 도착한 적이 있었는지3. 아니라면 열과 다른 곳으로만..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 입출력 해설 N에 도달하는 여러 가지 방법을 1234567으로 나눈 나머지로 리턴하여라. 문제를 잘 읽어보면 한 칸에서 두 칸만 뛸 수 있다는 것이 이 문제의 KeyPoint이다. 결국 내가 1번 칸이었으면 다음으로는 2번칸, 3번칸으로만 갈 수 있다는 것이고 7번칸이면 8번칸, 9번칸으로 갈 수 있다는 것이다.다시 말해 N칸에 도달하기 위해서는 N-1칸, N-2칸에서 올 수 있으므로 N-1칸과 N-2칸에서 오는 경우의 수를 더해주는 것이다. 그러..