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 |
Tags
- 프로젝트
- DP
- BFS
- Python
- parklab
- 멋재이사자처럼
- 시각화
- Rag
- GNN
- 알고리즘
- Join
- 파이썬
- likelionlikelion
- likelion
- paper review
- SQL
- graphrag
- 멋쟁이사자처럼
- 마이온컴퍼니
- TiL
- ux·ui디자인
- seaborn
- intern10
- 그리디
- DFS
- 멋사
- tog
- folium
- 인턴10
- 마이온
Archives
- Today
- Total
지금은마라톤중
[백준] 2891번 카약과 강풍 본문

이 문제는 그리디 문제입니다.
실버5 난이도여서 뚝딱하고 해결할줄 알았지만 예상외로 복잡한 코드로 풀었습니다.
접근법
- 리스트 생성
- 카약이 손상되었는데 여분 카약이 있는 팀을 우선적으로 제거
- 그 후 반복문 통해 앞뒤 팀의 여분 카약 여부 체크하고 있을 시 여분 카약 리스트(rev_r_teams)에서 제거
- 조건문에 걸리지 않으면 출발하지 못한 팀 cnt 증가
n,s,r = map(int,input().split())
teams = [i for i in range(1,n+1)]
s_teams = list(map(int,input().split()))
r_teams = list(map(int,input().split()))
cnt = 0
rev_s_teams = list(set(s_teams)-set(r_teams))
rev_r_teams = list(set(r_teams)-set(s_teams))
for i in teams:
if i in rev_s_teams :
if (i-1) in rev_r_teams:
rev_r_teams.pop(rev_r_teams.index(i-1))
continue
elif (i+1) in rev_r_teams:
rev_r_teams.pop(rev_r_teams.index(i+1))
continue
else :
cnt +=1
print(cnt)
'STUDY > Python 알고리즘' 카테고리의 다른 글
[이론] 탐욕적(그리디) 알고리즘 (0) | 2024.05.24 |
---|---|
[백준] 1459번 걷기 (0) | 2024.05.22 |
[백준] 11660번 구간 합 구하기 5 (0) | 2024.05.17 |
[백준] 1912번 연속합 (0) | 2024.05.16 |
[백준] 11726번 2xn 타일링 (0) | 2024.05.15 |