본문 바로가기
코딩 테스트/do it! 알고리즘 코딩테스트

008 좋아

by ornni 2024. 4. 11.
728x90
반응형

첫번째 코드

 

투포인트를 이용한 상황에서 조금 더 신경쓰면 될 것 같다..?

 

import sys
input = sys.stdin.readline

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

target = 2
good = []

sort_number = sorted(number)

while target != n:
    one = 0
    two = target - 1
    while one < two:
        sum = sort_number[one] + sort_number[two]
        target_no = sort_number[target]
        if sum == target_no:
            good.append(target_no)
            one += 1
            two -= 1
            break
        elif sum < target_no:
            one += 1
        else:
            two -= 1
    target += 1

print(len(good))

 

오류!!!!

흠.... ?


 

두 번째 코드

 

원인 파악에서 고민을 많이했는데

책의 코드와 비교한 결과 "어떤 수가 다른 수 두 개의 합" 이게 문제였던 것 같다!

 

import sys
input = sys.stdin.readline

n = int(input())
number = list(map(int, input().split()))
answer = 0
sort_number = sorted(number)

for k in range(n):
    target = sort_number[k]
    one = 0
    two = n-1
    while one < two:
        sum = sort_number[one] + sort_number[two]
        if sum == target:
            if one != k and two != k:
                answer += 1
                break
            elif one == k:
                one += 1
            elif two == k:
                two -= 1
        elif sum < target:
            one += 1
        else:
            two -= 1

print(answer)

 

통과!

 

문제 열심히 읽자! 빼먹지 말고!!


링크

https://github.com/ornni/programmers/tree/main/%EB%B0%B1%EC%A4%80/Gold/1253.%E2%80%85%EC%A2%8B%EB%8B%A4

 

programmers/백준/Gold/1253. 좋다 at main · ornni/programmers

repository for recording Programmers Algorithm problem solving - ornni/programmers

github.com

 

반응형

'코딩 테스트 > do it! 알고리즘 코딩테스트' 카테고리의 다른 글

010 최솟값 찾기  (0) 2024.04.15
009 DNA 비밀번호  (2) 2024.04.15
007 주몽  (0) 2024.04.11
006 수들의 합 5  (0) 2024.04.08
005 나머지 합  (0) 2024.04.08