Coding Test/programmers

[Python] 파이썬 프로그래머스 요격 시스템

파송송 2023. 5. 17. 14:37
728x90

 

https://school.programmers.co.kr/learn/courses/30/lessons/181188

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


나의 풀이

  • targets를 폭격 개구간 e 기준으로 sort 하여 순서대로 미사일이 겹쳐있는 집합을 찾아 카운트함
  • 위의 방법을 통해 개구간 e를 기준으로 그 집합을 구함


def solution(targets):
    sort_targets = sorted(targets, key=lambda x:(x[1],x[0]))
    end = answer = 0

    for target in sort_targets:
        if end <= target[0]:
            answer+=1
            end = target[1]
    return answer


다른 사람의 풀이

  • 개구간 s를 기준으로 문제를 해결함
def solution(targets):
    answer = 1
    targets.sort()

    s,e = targets[0]
    for target in targets[1:]:
        if target[0] < e:
            if target[1] < e:
                e = target[1]
            continue
        else:
            s, e = target
            answer += 1

    return answer

728x90