dhk767   1년 전

안녕하세요.

본 문제를 딕셔너리를 활용해

value의 값을 '나이'로 두고 member_list를 만들었구요.

s1을 통해 vaule기준 오름차순으로 정렬한 후  

프린트를 하였습니다.

몇 가지의 반례를 넣어봤지만 잘 되는 듯해서..

코린이가 고수님들의 견해를 여쭙고자 질문 남겨봅니다.

멘트 주시면 감사하겠습니다!

dhk767   1년 전

멤버 리스트를 딕셔너리가 아닌 리스트로 바꾸어서 어떻게 해결하긴 했는데,,,

위의 코드가 왜 안되는지... 궁금합니다. 댓글 부탁드립니다~!ㅜㅜ

naracar12   1년 전

assert로 확인해보니 데이터상에 동명이인이 있는 것 같습니다.

https://www.acmicpc.net/source...

dhk767   1년 전

답변 감사합니다!

하지만 데이터상에 동명이인이 있다는게 저의 데이터인가요.. 아니면 채점 프로그램 데이터를 말씀하시는 건가요...?

링크를 클릭하니 404 오류가 떠서요..ㅜ

naracar12   1년 전

채점 데이터상에 동명이인이 있어서,

n명의 입력을 줘도 member list에 n명 미만의 데이터만 존재하게 되고,

이를 s1으로 정렬한다음에 n번 for 루프를 돌게되면,

n보다 짧은 리스트를 n번 돌려고 하니 에러가 납니다.

naracar12   1년 전

위에 링크단 코드는 제가 공개설정을 안바꿔서 비공개였네요...

지금은 공개로 바꿔서 확인하실 수 있습니다.

위의 코드에서 10번째 줄인

assert len(name_list)==len(set(name_list))

를 통해, 동명이인이 없다면 리스트와 집합의 길이가 같아야하는데, assertion error가 일어나는 것으로 보아, 동명이인이 있음이 확인됩니다.

dhk767   1년 전

아하! 정말 감사합니다! 도움 많이 되었습니다!

댓글을 작성하려면 로그인해야 합니다.