alpyrithm_알파이리즘
[알고리즘][Python] 백준(BOJ) 1940 주몽_파이썬 본문
1940 주몽 www.acmicpc.net/problem/1940
1940번: 주몽
첫째 줄에는 재료의 개수 N(1 ≤ N ≤ 15,000)이 주어진다. 그리고 두 번째 줄에는 갑옷을 만드는데 필요한 수 M(1 ≤ M ≤ 10,000,000) 주어진다. 그리고 마지막으로 셋째 줄에는 N개의 재료들이 가진 고
www.acmicpc.net

문제 풀기 전 공부할 것 : 정렬, 투 포인터
풀이
<내용>
- 고유한 번호를 정렬한다.
- 양끝 값에서(i = 0, j = n-1) 시작해서 둘의 합이 m과 같으면 cnt에 1을 더하고 위치를 하나씩 옮긴다.(i = i + 1, j = j - 1)
- 양끝 값에서 시작해서 둘의 합이 m보다 작으면 왼쪽의 작은 값을 크게 만들어야 한다.(i = i + 1)
- 양끝 값에서 시작해서 둘의 합이 m보다 크면 왼쪽의 큰 값을 작게 만들어야 한다.(j = j - 1)
<코드>
n = int(input())
m = int(input())
nums = list(map(int, input().split()))
nums.sort()
cnt = 0
i, j = 0, n-1
while i < j:
if nums[i] + nums[j] == m:
cnt += 1
i += 1
j -= 1
elif nums[i] + nums[j] < m:
i += 1
else:
j -= 1
print(cnt)
728x90
반응형
'Algorithm > 백준 알고리즘_Python' 카테고리의 다른 글
[알고리즘][Python] 백준(BOJ) 1969 DNA_파이썬 (0) | 2020.10.14 |
---|---|
[알고리즘][Python] 백준(BOJ) 2607 비슷한 단어_파이썬 (0) | 2020.10.13 |
[알고리즘][Python] 백준(BOJ) 2966 찍기_파이썬 (0) | 2020.10.11 |
[알고리즘][Python] 백준(BOJ) 2608 로마 숫자_파이썬 (0) | 2020.10.10 |
[알고리즘][Python] 백준(BOJ) 9536 여우는 어떻게 울지?_파이썬 (0) | 2020.10.09 |