문제 : https://school.programmers.co.kr/learn/courses/30/lessons/181188
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
첫번째 풀이(통과)
def solution(targets):
answer = 1
targets.sort(key = lambda x:x[0])
inner = targets[0]
for i in range(1, len(targets)):
if inner[1] > targets[i][0]:
inner = [max(targets[i][0], inner[0]), min(inner[1], targets[i][1])]
else:
inner = targets[i]
answer += 1
return answer
1. 파이썬 정렬 알고리즘은 O(NlogN) -> 평균이긴 하나 거의 보장해줌
해결 방법을 고민하는데 시간이 좀 걸림
우선 타겟을 오름차순으로 정렬한 뒤, 겹치는 부분이 없다면 추가를 해주는 방식으로 알고리즘을 짰다.
람다를 요긴하게 잘써먹는 중
'📝 PS > 프로그래머스 (Python)' 카테고리의 다른 글
[프로그래머스] 연속된 부분 수열의 합 (파이썬, Python) (0) | 2023.04.28 |
---|---|
[프로그래머스] 두 원 사이의 정수 쌍 (파이썬, Python) (0) | 2023.04.18 |
[프로그래머스] 과제 진행하기 (파이썬, Python) (0) | 2023.04.13 |
[프로그래머스] 추억 점수 (파이썬, Python) (0) | 2023.04.13 |
[프로그래머스] 달리기 경주 (파이썬, Python) (0) | 2023.04.06 |
댓글