본문 바로가기

알고리즘2

[Python] 백준 2448번: 별 찍기 - 11 https://www.acmicpc.net/problem/2448 2448번: 별 찍기 - 11 첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수) www.acmicpc.net 문제를 보면 N번째 줄까지 별을 출력하고, N은 항상 3x2^k의 수입니다. N = 6 은 위, 대각왼쪽아래, 대각오른쪽아래가 N = 3 이 반복된 것을 볼수있습니다. N = 12 은 위, 대각왼쪽아래, 대각오른쪽아래가 N = 6 이 반복된 것을 볼수있습니다. 이렇게 N은, N / 2가 위, 대각왼쪽아래, 대각오른쪽아래로 만들어 진것입니다. 그럼 이 모든 값을 좌표로 저장하기 위해 2차원 배열을 만들고, 세로는 N개만큼, 가로는 2*N - 1만큼 만.. 2022. 3. 29.
[Python] 백준 2879번: 코딩은 예쁘게 https://www.acmicpc.net/problem/2879 2879번: 코딩은 예쁘게 첫째 줄에 줄의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 현재 줄에 있는 탭의 개수가 주어지며, 1번째 줄부터 순서대로 주어진다. 탭의 개수는 0보다 크거나 같고, 80보다 작거나 같은 정수 www.acmicpc.net 1. 출발탭과 목표탭의 차를 구하고 양수와 음수의 그룹을 분리해준다. (양수와 음수의 분리를 위해, 양수와 음수를 같이연산하면 반대연산은 자꾸 늘어나기때문 ex) 1 -1 에 + 1 을하면 2 0 즉 음수는 사라졌지만 양수의 연산은 하나 더 늘었다) 2. 제일 작은수를 기준으로 분할해서 재귀를 돌려준다. ex) 3 2 1 2 3 (-1) > 2 1 0 1 2 0을 기준으로 분리.. 2021. 9. 14.