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
- ux·ui디자인
- TiL
- SQL
- Plotly
- BFS
- 인턴10
- GNN
- 멋재이사자처럼
- parklab
- Python
- 멋쟁이사자처럼
- 알고리즘
- 그리디
- 멋사
- GIS
- folium
- DFS
- DP
- 마이온컴퍼니
- 멋쟁이사자처럼멋쟁이사자처럼
- 마이온
- seaborn
- pyhton
- 파이썬
- 프로젝트
- likelionlikelion
- 시각화
- Join
- likelion
- intern10
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 |
Comments