https://www.acmicpc.net/problem/7785
문제 설명
출입 카드 시스템에 들어온 사람과 나간 사람의 로그가 저장된다.
출입한 사람의 이름과 출입 여부가 주어질 때, 아직 나가지 않은 사람을 출력하면 되는 문제다.
코드 설명
우선, n으로 총 로그의 수를 입력받는다. n만큼 도는 for문 안에서, 2개의 요소로 이루어진 입력값을 리스트로 변환하여 입력받는다.
사람 이름을 key값으로, 회사 출입 여부를 value값으로 하는 딕셔너리를 사용한다.
때문에, 리스트의 두번째 값(log[1])이 'enter'이면 딕셔너리에 1을 value값으로 저장하고, 그렇지 않으면 0으로 저장한다.
첫번째 for문이 끝나면 한번이라도 들어온 사람은 모두 딕셔너리에 저장되며, value값은 0혹은 1을 가지게 된다.
이제 value값이 1인 key값만 출력하면 끝난다.
딕셔너리에 대하여 한번 더 for문을 돌려서 value값이 1인 key로만 이루어진 새로운 리스트를 만든다.
내림차순으로 출력하라고 했으므로 'reverse=True'를 사용하여 재배열한 후, join을 사용하여 한 줄에 한 명의 이름만 출력되게 하면 끝난다!
'Koala - 7기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/python] 9012번: 괄호 (0) | 2022.07.17 |
---|---|
[백준/python] 14910번 오르막 (0) | 2022.07.17 |
[백준/python] 3449번 : 해밍 거리 (0) | 2022.07.17 |
[백준/Python] 10773번 제로 (0) | 2022.07.16 |
[백준/C++]:6996번 애너그램 (0) | 2022.07.16 |