백준(Python) 풀이/그리디 알고리즘

백준(Python) 23305번 수강변경 풀이

개발윗미 2021. 12. 15. 10:32

Python으로 구현한 23305번 수강변경 문제 풀이입니다.

 

https://www.acmicpc.net/problem/23305

 

23305번: 수강변경

$2$번 학생과 $3$번 학생이 수업을 교환한 후, $3$번 학생이 교환한 수업을 $5$번 학생과 교환하게 되면 $2$/$3$/$5$ 번 학생이 원하는 수업을 수강할 수 있다.

www.acmicpc.net


n = int(input())
data = [0] * 1000001

for i in list(map(int, input().split())) :
  data[i] += 1

result = 0
for i in list(map(int, input().split())) :
  if data[i] >= 1 :
    data[i] -= 1
  else :
    result += 1

print(result)

 

1. 신청한 수업을 의미하는 수들을 입력받아 리스트 형태로 구성하고 반복문을 통해 data리스트의 해당 인덱스의 값을 1 증가시킨다.

 

2. 교환을 통해 수강하고 싶은 수업의 번호를 의미하는 수들을 입력받아 리스트 형태로 구성하고 반복문을 통해 값을 하나씩 확인한다.

 

3. 만약 data 리스트의 해당 인덱스의 값이 1이상일 경우 그 값을 1씩 빼준다.

 

4. 인덱스의 값이 0일 경우 result값을 1 증가시키고, 반복문이 종료되면 result 값을 출력한다.