목록2022/04/10 (2)
라떼는말이야
문제 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 (ai, aj)쌍의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수열의 크기 n이 주어진다. 다음 줄에는 수열에 포함되는 수가 주어진다. 셋째 줄에는 x가 주어진다. (1 ≤ n ≤ 100000, 1 ≤ x ≤ 2000000) 출력 문제의 조건을 만족하는 쌍의 개수를 출력한다. 예제 나의 풀이 이 문제를 단순하게 더해서 나올 수 있는 모든 값을 리스트에 담아서 x(찾는 값)를 리스트의 모든 요소와 비교하며 찾는다면 최악의 경우 (수열의 크기 * 수..
문제 N개의 수 중에서 어떤 수가 다른 수 두 개의 합으로 나타낼 수 있다면 그 수를 “좋다(GOOD)”고 한다. N개의 수가 주어지면 그 중에서 좋은 수의 개수는 몇 개인지 출력하라. 수의 위치가 다르면 값이 같아도 다른 수이다. 입력 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) 출력 좋은 수의 개수를 첫 번째 줄에 출력한다. 예제 힌트 3,4,5,6,7,8,9,10은 좋다. 나의 풀이 문제 접근은 어렵지 않았다. 투 포인터의 전형적인 유형인 것 같다. 그러나 디테일한 부분을 놓쳐 여러 시도 끝에 성공한 문제이다. 다음 4가지 상황을 주의하자 입력 받은 숫자들을 정렬했는가 숫자..