class Solution: def distinctNames(self, ideas: List[str]) -> int: ans = 0 heads = {chr(ord('a')+i) : [] for i in range(26)} chars = [chr(ord('a')+i) for i in range(26)] for idea in ideas: heads[idea[0]].append(idea[1:]) for i in range(25): for j in range(i+1, 26): x, y = set(heads[chars[i]]), set(heads[chars[j]]) no = len(x & y) ans += 2 * (len(x) - no) * (len(y) - no) return ans처음엔 좀 어려운 문제인가? 하고 봤는데어떻게 고민하다보니 풀 수 있었음.처음에는 head(0)에 대한 tail(1부터)들의 모임도 생각하고,tail에 대한 head들의 모임도 생각했는데 후자는 숫자가 너무 커지더라.
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.