본문 바로가기
728x90

정렬34

[python] 백준 1253 좋다 https://www.acmicpc.net/problem/1253 1253번: 좋다 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) www.acmicpc.net 문제 해결 리스트 안의 서로 다른 두 수의 합이 리스트 안의 다른 수가 되는 경우의 수를 구하는 문제이다. 리스트 안의 서로 다른 두 수의 합을 비교하는 것이므로 리스트를 올림차순으로 정렬하고 투포인터 이용하는 것이 좋아 보인다. 두 수의 합이 리스트 안에 있어도 3 + 0 = 3 등 다른 수가 되지 않으면 그 경우는 경우의 수로 계산하지 않는다. CODE import sys input = sys.stdin.readline .. 2023. 2. 18.
[python] 백준 1940 주몽 https://www.acmicpc.net/problem/1940 1940번: 주몽 첫째 줄에는 재료의 개수 N(1 ≤ N ≤ 15,000)이 주어진다. 그리고 두 번째 줄에는 갑옷을 만드는데 필요한 수 M(1 ≤ M ≤ 10,000,000) 주어진다. 그리고 마지막으로 셋째 줄에는 N개의 재료들이 가진 고 www.acmicpc.net 문제 해결 두 수의 합이 특정한 수(m)이 되야함. 리스트를 올림차순으로 정렬하고 투포인터를 이용해 두 수의 합을 구한다. 두 수의 합이 m보다 크면 오른쪽 포인터를 왼쪽으로 옮긴다. 두 수의 합이 m보다 작으면 왼쪽 포인터를 오른쪽으로 옮긴다. 두 수의 합이 m과 같으면 정답 ans를 1을 올리고 왼쪽 포인터를 오른쪽으로 한 칸, 오른쪽 포인터를 왼쪽으로 한 칸 옮겨서 .. 2023. 2. 18.
728x90