Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 셀러리
- 구현
- 결제서비스
- jwt 표준
- 레디스 동시성
- docker
- 완전탐색
- 추천 검색 기능
- BFS
- 이분탐색
- 몽고 인덱스
- piplining
- 검색어 추천
- 트랜잭샨
- ai agent
- 디버깅
- 프로그래머스
- next-stock
- gRPC
- 쿠키
- langgraph
- 아키텍쳐 개선
- 누적합
- 카카오
- 백준
- 크롤링
- JPA
- spring event
- AWS
- ipo 매매자동화
Archives
- Today
- Total
코딩관계론
[프로그래머스] 요격 시스템 본문
반응형
[문제 설명]
A나라에서 발사한 미사일의 구간이 (s, e)로 주어지고, B나라는 최소한의 요격 미사일로 A가 날린 미사일을 요격해야 한다.
B가 사용하는 최소한의 미사일을 개수를 찾는 문제다.
[해결 방법]
저는 이 문제를 풀기위해 그리디 알고리즘을 사용했습니다. 그리디 알고리즘을 사용한 이유는 다음과 같습니다. 우리가 원하는 답은 최소한의 요격 미사일 개수 입니다. A가 날린 미사일의 위치를 모두 알 수 있으니, 우리는 미사일의 공통된 구간을 찾아서 요격 미사일을 날려주면 원하는 답을 찾을 수 있습니다.
코드
# Copyright 2023 bae
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
def solution(targets):
answer = 0
targets.sort()
start_y = -1
for x, y in targets:
if x < start_y:
if y < start_y:
start_y = y
else:
answer += 1
start_y = y
return answer
if __name__ == "__main__":
target = [[4,5],[4,8],[10,14],[11,13],[5,12],[3,7],[1,4]]
result = 3
print(solution(target))
반응형
'개발 > 알고리즘' 카테고리의 다른 글
[프로그래머스] 숫자 블록 (0) | 2023.05.21 |
---|---|
[프로그래머스] 과제 진행 (0) | 2023.05.07 |
[웹 백엔드] 칫솔 판매 (0) | 2023.04.13 |
[카카오] k진수에서 소수 개수 구하기 (0) | 2023.04.11 |
[카카오] 표현 가능한 이진트리 (0) | 2023.04.11 |