[LeetCode] 609. Find Duplicate File in System

Chobby·2026년 5월 11일

LeetCode

목록 보기
1068/1077

😎풀이

  1. paths를 경로와 파일들로 분리
  2. 파일명과 본문 내용 분리
  3. 본문 내용이 같은 파일을 전체 경로와 함께 저장
  4. 본문 내용이 중복된 파일에 한해서 반환
function findDuplicate(paths: string[]): string[][] {
    const fileDescMap = new Map<string, string[]>()
    for(const path of paths) {
        const [pathName, ...files] = path.split(' ')
        for(const file of files) {
            const idx = file.indexOf('(')
            const fileName = file.slice(0, idx)
            const fileDesc = file.slice(idx + 1, -1)
            fileDescMap.set(fileDesc, [...(fileDescMap.get(fileDesc) ?? []), pathName + '/' + fileName])
        }
    }
    return [...fileDescMap.values()].filter(files => files.length > 1)
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글