본문 바로가기

코딩테스트

(34)
[백준/C++] 1002번. 터렛 문제 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 $-1$ 출력한다. www.acmicpc.net 1. 첫 번째 풀이 사고 과정 - 간단하게 조규현은 A, 백승환은 B, 마린은 마린으로 칭해보자. - A로부터 반지름이 r1인 원을, B로부터 반지름이 r2인 원을 그릴 수 있다. - 두 원은 두 점에서 만나거나, 한 점에서 만나거나, 만나지 않거나, 완전히 겹칠 수 있다. - 완전히 겹치는 경우는 A와 B의 x, y, r이 모두 같아야 성립된다. 이땐 -1을 출력한다. - x1과 x2, y1과 y2가 같지만, r1과 r2가 다르다면 0을 출력한다. - 한 점에서 만나는 경우는, r1 + r2가 A, B 사..
[백준/C++] 1026번. 보물 문제 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 1. 첫 번째 풀이(마지막 풀이) 사고 과정 - 같은 위치끼리 곱하고 모두 더한다. - A의 가장 큰 수를 B의 가장 작은 수에, 두 번째로 큰 수는 두 번째로 작은 수 위치에 배치하면 될 것 같다. - 그렇다면 다음 문제는 어떻게 위치시키느냐. - 제일 먼저 떠오르는 방법은 (B의 값, 인덱스)를 하나로 묶고 값 크기순으로 정렬하는 것. B의 값이 같을 때 인덱스 순서가 유지될 필요는 없다. - 재배열한 A를 출력하는 게 아닌, S의 최솟값을 출력..