[LeetCode] 599. Minimum Index Sum of Two Lists

Chobby·2025년 4월 17일
1

LeetCode

목록 보기
366/427

😎

  1. result: 탐색된 최소 Index의 문자가 담길 배열
  2. leastIdx: 현재 탐색된 최소 Index의 합
  3. list1이 항상 list2보다 짧은 길이를 갖도록 설정
  4. list 순회
    4-1. 현재 문자가 list2에 없다면 다음 탐색
    4-2. 현재 Index가 탐색된 최소 Index보다 크다면 다음 탐색
    4-3. 현재 Index가 탐색된 최소 Index보다 작다면, result 초기화 후 최소 Index의 합을 현재 Index로 설정
    4-4. result에 현재 문자열 추가
  5. 탐색된 최소 Index의 문자들(result)을 출력
function findRestaurant(list1: string[], list2: string[]): string[] {
    let result = []
    let leastIdx = Infinity
    if(list1.length > list2.length) [list1, list2] = [list2, list1]
    for(let i = 0; i < list1.length; i++) {
        const curStr = list1[i]
        const list2Idx = list2.indexOf(curStr)
        if(list2Idx < 0) continue
        const curIdx = i + list2Idx
        if(curIdx > leastIdx) continue
        if(curIdx < leastIdx) {
            result = []
            leastIdx = curIdx
        }
        result.push(curStr)
    }
    return result
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글