앞 문제에서 걸어준 조건중에 1학년 4학년이 수강할 수 없는 과목들이 있는데 여기서는 그걸 고려하지 않고 방 배분을 한게 아닌가 싶은데... 1학년이 수강할 수 없는 과목에 신청해서 not allowed가 걸려있더라도 그 사람이 신청한 수까지 더해서 방 크기에 포함이 되는게 아닌가 싶네요... 예를들어 만약 information technology과목을 40명이 신청했는데 그 중 1학년이 1명 있었다고 가정하면 여기서 for문에 그 1학년도 인원으로 포함되어 Large room 조건을 만족하는데 1학년은 not allowed이므로 결과적으론 39명이 되어 Medium room으로 배정받아야 하는게 잘못 나올 수 있다고 생각합니다.. 장황하게 써놨는데 맞는지 모르겟네요ㅠㅠ 앞에 문제의 조건을 그대로 가져온다고 생각하면 헛점이 있는것같아서...
+0
베스트 댓글
2020년 11월 4일
코드에 헛점이 있냐 없냐를 떠나서 len으로 수강생이 몇 명인지 체크한다는 게 엄청 신선한 접근인 것 같아요 덕분에 시야가 넓어진 것 같아요
condition의 경우 'status'가 'not allowed'인 경우까지 포함하여 value_counts가 되기 때문에 #4~7라인 코드의 경우 문제조건을 100% 만족하지 못하는 것 같습니다! 범위 지정 조건으로 운 좋게 결과 값은 동일할 수 있지만요, 실제로 값을 비교해보면
allow_st = df.loc[df['status'] == 'allowed', 'course name'].value_counts() condition = df['course name'].value_counts() list(condition) == list(allow_st) -> False 출력 으로 수강 인원 값이 다른 것을 확인해 보실 수 있습니다!
리스트 출력으로 직접 비교도 해보았습니다. [158, 124, 105, ...] #list(condition) [158, 124, 101, ...] #list(allow_st) 세 번째 값에서 바로 확인 가능합니다.
댓글 4개