.
'분류 전체보기' 카테고리의 글 목록 (8 Page)
섞고 섞고 돌리고 섞고 (백준 2470 : 두 용액)
2470번: 두 용액 (acmicpc.net) 2470번: 두 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00 www.acmicpc.net - 대전략: 요소를 오른차순으로 나열하고, 제일 작은 것은 min, 큰 것을 max로 하자. (min과 max는 인덱스 값이다.) 그리고 두개를 더했을 때, 음수면은 min을 한칸 위로 옮기고 양수면 max를 한칸 밑으로 내린다. min과 max를 더한 절대값 ( abs(sol[min] + sol[max]))이 제일 낮았을 때, min과 max을 저장하고, 양 합의 절댓값이 더 낮은..
2020. 12. 18.
아래로부터의 혁명 (백준 9095 : 1, 2, 3 더하기)
9095번: 1, 2, 3 더하기 (acmicpc.net) 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net - 대전략 : 예를 들어 입력값이 5(N)라고 하자. 일단 1부터 올라가야 할 것이다. 그러면 [1 1 1 1 1]이 될 것이고 이 조합의 수는 1개이다. 그다음은 1 2개를 합쳐서 [2 1 1 1]을 만들고 이 조합의 수는 4! (요소의 갯수) / 3! (중복된 숫자의 갯수) 가 된다. 리스트 안의 1, 2, 3의 갯수를 리스트화 하자. arr = [a b c]에서, a는 3의 갯수, b는 2의 갯수, c는 1의 갯수가 된다. 즉, [1 1 1 1 1] 은 arr=[0 0 5] 가 되고, [2 2 1..
2020. 12. 17.
ㅋ (백준 1074번 : Z)
1074번: Z (acmicpc.net) 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. 만약, N > 1이 라서 www.acmicpc.net 일단 N이 2가 될때까지 쪼개야 한다. 이를 재귀로 표현하면 다음과 같다. if N = 2: else: zet(N-1,r,c): 그리고 (r,c)가 몇 사분면에 있는지가 필요하다. ( Z방향으로 n사분면을 정한다.) 만약 첫 시도에서 (r,c)가 1사분면에 있지 않다면 바로 구할 수 있으나, 1사분면에 있다면 한번 더 쪼개줘야 한다. def zet(N, x, y): if x > N // 2: i = 1 else: ..
2020. 12. 14.