목록코딩 테스트/백준 (139)
미소를뿌리는감자의 코딩
https://www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 1. 접근 방법 이번 문제는 sorted를 이용하면 쉽게 풀 수 있는 문제였다. coor는 [[ , ], [ , ], [ , ] ... ] 이렇게 구성된 list이다. 즉, 2차원 list sorted_coor = sorted(coor, key=lambda coor: (coor[1], coor[0])) coor를 기준으로 key를 설정해주었..
https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 1. 접근 방법 처음에 접근을 잘못했다가 많이 헤맨 문제이다. dp를 이용해서 문제를 풀어야 한다. 이때, dp란? : 최적 부분 구조와 중복되는 부분문제를 가지는 것이다. 중복되는 부분문제는 말그래도 중복되는 문제를 가지는 것이고, 최적 부분 구조는 문제를 해결하기 위한 최적의 방법은 문제를 구성하는 부분 문제들의 최..
https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net 1. 접근 방법 삼각형의 특정 위치에서의 삼각형 밑변까지 도달하기까지의 최댓값은 고정되어 있다고 생각하였다. 따라서 해당 위치에서의 최댓값을 memoization을 통해서 저장해둔다면, 값을 구할 수 있을 것이라 생각하였다. 따라서 만약 dictionary에 구하고자 하는 값이 있다면 그 값을 반환해 주었으며, 해당 dictionray에는 그 위치에서 얻을 수 있는 최댓값을 포함하고 있다. 만약, 밑변에 도달했다면, 더 이상 나아갈 길이 없기 때문에, 그 때는 자기 자..
https://www.acmicpc.net/problem/9461 9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net 1. 접근 방법 이 문제에 대해서 조금 생각을 해보니, 방금 전에 생긴 삼각형에 대해서는 변으로 사용할 수 없다는 점이었다. 즉, 이렇게 변이 1인 삼각형 2개를 이용해서 생긴 새로운 변이 2인 삼격형의 경우, 연결되어 있는 변이 없기 때문에, 연결을 진행시킬 수 없다. 이런 개념을 이용하게 된다면, 1 1 1 2 2 3 4 5 7 9 12의 경우 자신의 길이의 전과 전전을 더한 값이 된다는 것을 알 ..