문제 링크: https://www.acmicpc.net/problem/11723
내 풀이:
Review:
remove 명령은 집합 s에 num이 존재하면 제거하고, 없으면 무시하는 명령이다. 이 명령을 처리하기 위해 remove()가 아닌 discard()를 사용했다.
두 내장함수 모두 집합에서 원소를 제거하지만, remove()의 경우에는 집합에 해당하는 원소가 없으면 KeyError가 발생하고, discard()의 경우는 해당 원소가 없어도 에러가 발생하지 않는다. 따라서 해당 원소가 존재하는지 정확히 알 수 없을때는 discard()를 사용하고 반대의 경우는 remove()를 사용하는 것이 좋다. 위의 toggle 명령을 처리할 때 in 연산자로 num이 집합 s에 존재하는지 확인한 경우에는 discard()가 아닌 remove()를 이용해서 해당 원소를 제거하는 처리를 해주었다.
all 명령의 처리를 위해 미리 집합 컴프리헨션을 이용하여 1~20까지의 원소를 가진 집합을 미리 선언하였다.
Idea:
문제에서 요구하는 요구사항을 집합이나 리스트를 이용해서 구현하면 어렵지 않은 문제이다.
'알고리즘 문제 풀이: 파이썬 > BOJ' 카테고리의 다른 글
[BOJ_9046] 복호화 (0) | 2022.01.01 |
---|---|
[BOJ_6996] 애너그램 (0) | 2021.11.04 |
[BOJ_8892] 팰린드롬 (0) | 2021.10.27 |
[BOJ_1236] 성 지키기 (0) | 2021.10.24 |
[BOJ_4358] 생태학 (0) | 2021.10.23 |
댓글