ornni 2024. 4. 11. 10:00
728x90
반응형

첫번째 코드

 

투 포인터를 배웠으니까 이용해서 풀어보자!

 

sorting을 진행하여 오름차순으로 변경

합이 작으면 : 시작 += 1

합이 크면 : 끝 -= 1

합이 같으면: 시작 += 1, 끝 -= 1

 

라고 생각을 했는데 계속 같은 수가 있으면? 이라는 생각으로 코드를 만들면서 엉켜버렸다...

큰 아이디어는 바뀌지 않고 책을 보면서 코드와 생각 정리하면서 정답을 맞췄다!

 

import sys
input = sys.stdin.readline

n = int(input())
m = int(input())
number = list(map(int, input().split()))

one = 0
two = n-1
count = 0

sort_number = sorted(number)

while one < two:
    sum = sort_number[one] + sort_number[two]
    if sum == m:
        count += 1
        one += 1
        two -= 1
    elif sum < m:
        one += 1
    else:
        two -= 1

print(count)

 

통과!


링크

https://github.com/ornni/programmers/tree/main/%EB%B0%B1%EC%A4%80/Silver/1940.%E2%80%85%EC%A3%BC%EB%AA%BD

 

programmers/백준/Silver/1940. 주몽 at main · ornni/programmers

repository for recording Programmers Algorithm problem solving - ornni/programmers

github.com

 

반응형