[Baekjoon]백준 3015 오아시스 재결합(플래티넘 5) - Python
문제를 살펴보면 서로 볼 수 있는 사람의 수를 구해야한다문제를 제대로 이해하기 위해 총 몇 쌍이 나오는지 직접 구해보았는데, (2, 4), (4, 1), (4, 2), (4, 2), (4, 5), (1, 2), (1, 2), (2, 2), (2, 5), (5, 1) 이렇게 총 10개이다(앞에서부터 정렬)즉, 마주보고 있는 사람도 포함하되, 중간에 위치한 사람의 키가 크지 않은 경우도 동시에 계산해야한다 스택을 1차원으로 해결해보려고 했는데 도저히 방법이 생각이 안 나서 찾아보았다검색을 해보니 2차원으로 사용하는 방법이 대부분이었고, 현재 키와 개수를 스택에 넣는 방법을 사용하였다stack에는 키와 해당 키의 개수를 저장하고, total_views에는 총 시야의 개수,cnt에는 같은 키를 가진 사람의 수를..
더보기
[Baekjoon]백준 9095 1, 2, 3 더하기(실버 3) - Python
문제를 살펴보면 문제 자체는 간단하다 어떠한 수를 완성하기 위해 가능한 경우의 수를 구하면 된다이 문제를 보자말자 들었던 생각으로는 나눠서 생각하면 더 간단하고, 그러면 동적 프로그래밍(dp)를 사용하면되겠다! 라는 생각이 들었다 그래서 어떠한 규칙이 존재하는지 확인해보았다dp[1] = 1 : 1dp[2] = 2 : 1+1, 2dp[3] = 4 : 1+1+1, 1+2, 2+1, 3 dp[4] = 7 : 1+1+1+1, 1+1+2, 1+2+1, 2+1+1, 2+2, 1+3, 3+1 dp[5] = 13 : 1+1+1+1+1, 1+2(2의 위치에 따라 달라지므로 총 5개), 2+2+1(같은 원리로 3개), 3+1+1(같은 원리로 3개), 3+2...가만히 보다보니 반복되는 규칙을 직관적으로 발견할 수 있었다..
더보기