alpyrithm_알파이리즘
[알고리즘][Python] 백준(BOJ) 1940 주몽_파이썬 본문
1940 주몽 www.acmicpc.net/problem/1940
문제 풀기 전 공부할 것 : 정렬, 투 포인터
풀이
<내용>
- 고유한 번호를 정렬한다.
- 양끝 값에서(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 |
Comments