[그리디 알고리즘] 카약과 강풍

2022. 10. 2. 23:10· 알고리즘
목차
  1. 카약과 강풍(2891)

카약과 강풍(2891)

 


 

[문제]

2890번을 보면 알겠지만, 상근이는 카약 대회를 개최했다. 그런데, 갑자기 엄청난 강풍이 경기장에 불었고, 일부 카약이 부서졌다. 경기는 5분 안에 시작해야 하는 상황이다.
다행히 일부 팀은 혹시 모를 사태에 대비해서 카약을 하나 더 경기장에 들고 왔다. 카약은 매우 무겁고 운반하기 어렵다. 따라서, 자신의 바로 다음이나 전에 경기하는 팀에게만 카약을 빌려주려고 한다. 즉, 팀 4는 여분의 카약을 3이나 5에게만 빌려줄 수 있다. 다른 팀에게서 받은 카약은 또 다른 팀에게 빌려줄 수 없다. 또, 카약을 하나 더 가져온 팀의 카약이 손상되었다면, 여분의 카약으로 경기에 출전하게되고, 이 카약은 다른 팀에게 빌려줄 수 없다.
카약이 부서진 팀과 하나 더 가져온 팀이 주어진다. 카약을 적절히 빌렸을 때 출발하지 못하는 팀의 최솟값은 몇 팀인지 구하는 프로그램을 작성하시오.

[입력]

첫째 줄에 팀의 수 N, 카약이 손상된 팀의 수 S, 카약을 하나 더 가져온 팀의 수 R이 주어진다. (2 ≤ N ≤ 10, 1 ≤ S, R ≤ N)
둘째 줄에는 카약이 손상된 팀의 번호가 주어진다. 팀 번호는 중복되지 않는다.
셋째 줄에는 카약을 하나 더 가져온 팀의 번호가 주어진다. 팀 번호는 중복되지 않는다.

[출력]

첫째 줄에 출발을 할 수 없는 팀의 최솟값을 출력한다.

[입력 예시]

5 2 1
2 4
3

[출력 예시]

1

[내 풀이]

 

#팀의 수, 카약이 손상된 팀의 수, 카약을 하나 더 가져온 팀의 수
n, s, r=map(int, input().split())
broken_kayak=list(map(int, input().split()))
more_kayak=list(map(int, input().split()))

team=[1] * n
#손상된 카약
for i in broken_kayak:
    team[i-1]-=1

#하나 더 가져온 카약
for i in more_kayak:
    team[i-1]+=1

#[1, 1, 1, 1, 1] -> [1, 0, 2, 0, 1]

#바로 전이나 다음에 경기하는 팀만 카약을 빌려줄 수 있다.
for i in range(n):
    #1번째 팀일 때
    if i==0:
        if team[i]==2 and team[i+1]==0:
            team[i]-=1
            team[i+1]+=1
    #마지막 팀일 때
    elif i==n-1:
        if team[i]==2 and team[i-1]==0:
            team[i]-=1
            team[i-1]+=1
    #그 외
    else:
        if team[i]==2 and team[i-1]==0:
            team[i]-=1
            team[i-1]+=1
        elif team[i]==2 and team[i+1]==0:
            team[i]-=1
            team[i+1]+=1

print(team.count(0))

'알고리즘' 카테고리의 다른 글

[그리디 알고리즘] Project Teams  (0) 2022.10.10
[그리디 알고리즘] 걷기  (0) 2022.10.10
[그리디 알고리즘] 거스름돈  (0) 2022.10.02
[프로그래머스] 하샤드 수  (0) 2022.10.02
[그리디 알고리즘] 회의실 배정  (0) 2022.08.25
  1. 카약과 강풍(2891)
'알고리즘' 카테고리의 다른 글
  • [그리디 알고리즘] Project Teams
  • [그리디 알고리즘] 걷기
  • [그리디 알고리즘] 거스름돈
  • [프로그래머스] 하샤드 수
오승미
오승미
오승미
프로그래밍 공부
오승미
전체
오늘
어제
  • 분류 전체보기 (114)
    • 개발 (31)
      • 배포 (2)
      • KAFKA (3)
      • MSA (11)
      • 리눅스 (2)
      • Spring (1)
      • FE (0)
    • SQL (6)
    • 알고리즘 (50)
    • JAVA (14)
    • 개발 서적 리뷰 (1)
      • Clean Code (1)
      • 실전 카프카 개발부터 운영까지 (0)
    • CS (12)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기
  • 관리

공지사항

인기 글

태그

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
오승미
[그리디 알고리즘] 카약과 강풍
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.