목록코딩 테스트/백준 (139)
미소를뿌리는감자의 코딩
https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 1. 접근 방법 이번 문제는 DFS로 접근해야겠다는 냄새가 많이 나는 문제였다. def DFS(rows, m): if len(rows) == m: print(' '.join(map(str, rows))) return for i in range(1, n + 1, 1): if len(rows) == 0 or rows[-1] < i: rows.append(i) DFS(rows, m) n, m = ma..
https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 1. 접근 방법 2중 리스트로 값을 저장하고, 해당 리스트 합을 구한다. 즉, 종이에 적혀 있는 수들의 합을 구한다. 만약 그 수가 length**2 혹은 0 이 아니면, 종이가 파란색만 혹은 하얀색만 가지고 있는 것이 아니게 되어버릴 것이기 때문에 잘라줘야 한다. 이후, 다시 재귀적으로 종이를 4등분 한 후, 각각의 정사각형을 함수에 넣는다. 이후 해당 종이의 sum이..
https://www.acmicpc.net/problem/12015 12015번: 가장 긴 증가하는 부분 수열 2 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000,000) www.acmicpc.net 1. 접근 방법 굉장히 익숙한 문제여서, 내가 이 문제를 제출을 안했었나? 하고 같은 방법으로 다시 풀고 제출했더니, 시간 초과가 되었다. https://potatoscatteringsmile.tistory.com/206 [백준 2024/03/23] 11053번 가장 긴 증가하는 부분 수열 https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수..
https://www.acmicpc.net/problem/1300 1300번: K번째 수 세준이는 크기가 N×N인 배열 A를 만들었다. 배열에 들어있는 수 A[i][j] = i×j 이다. 이 수를 일차원 배열 B에 넣으면 B의 크기는 N×N이 된다. B를 오름차순 정렬했을 때, B[k]를 구해보자. 배열 A와 B www.acmicpc.net 1. 접근 방법 이 문제 처음에 이상하게 접근하다가, 다시 이진 탐색으로 돌아온 문제이다. 이후 답을 구글에서 알아보았다. 이해를 한 것을 적어보자면, 1 2 3 2 4 6 3 6 9 이렇게 값이 있다면, start 값을 1, end 값을 9로 설정한다. 이후 mid 값을 (start + end)//2를 통해서 한 후, 5보다 작은 값을 계산을 해준다. 이 계산을 해..