백준 알고리즘 4673번 문제 바로가기 (https://www.acmicpc.net/problem/4673)
약간 복잡해 보이는 문제가 등장했다. 문제를 보자.
이번 문제에는 셀프넘버라는 개념이 등장한다. 문제를 보고 셀프넘버를 반환하는 함수를 정의해 풀이하려 했지만 그것 보다는 d(n)을 정의 하고 d(n)으로 이루어진 수열을 전체 수 에서 중복되는 값을 제거하는 방식으로 셀프넘버를 구하였다.
두 리스트의 각각의 요소들이 중복되는 값을 제거하기위해 중복을 허용하지않는 집합set의 형식으로 변환하였다가 다시 list의 형식으로 변환시키는 방법을 썼다.
리스트의 요소들을 오름차순으로 정렬해 출력하기 위해서는 sorted라는 개념을 사용했다.
딱히 긴 코드를 요구하는 것도 아닌데 코드가 너무 길다. 줄이려면 거의 절반정도는 줄일 수 있을것 같은데 코드를 보고 쉽게 이해하기 위해서는 조금 길게 작성해서 가독성을 높이는게 나은 것 같기도 하다. 나중에 나만 보는 코드가 아니라면, 협업을 하게 된다면 짧게 작성하는게 나은지 주석을 붙여서라도 가독성을 높이는게 나은지 고민해봐야겠다.