본문 바로가기

Algorithm/Brute Force

(C++) - LeetCode (easy) 599. Minimum Index Sum of Two Lists

반응형

https://leetcode.com/problems/minimum-index-sum-of-two-lists/description/

 

Minimum Index Sum of Two Lists - LeetCode

Can you solve this real interview question? Minimum Index Sum of Two Lists - Given two arrays of strings list1 and list2, find the common strings with the least index sum. A common string is a string that appeared in both list1 and list2. A common string w

leetcode.com

전수조사로 푼 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

1. 공통 문자가 나온 list1, list2 각각의 index합의 최소 sumOfIndex를 선언한 뒤 나올 수 없는 최대값인 0x3f3f3f3f(약21억)을 선언해 줍니다.2. 정답 vector 변수 ans를 선언해줍니다.

📔 풀이과정

1. list1, list2의 원소들에 대해 2차원 for loop를 수행하며 공통 문자가 나왔을 경우 index 합의 최소를 저장해줍니다.

2. 다시 같은 2차원 loop를 수행하며 해당 문자가 나왔으며 index합이 최소라면 정답이므로 ans에 push_back해줍니다.

📔 정답 출력 | 반환

ans를 반환합니다.


📕 Code

📔 C++

class Solution {
public:
    vector<string> findRestaurant(vector<string>& list1, vector<string>& list2) {
        int sumOfIndex = 0x3f3f3f3f;
        vector<string> ans;
        for(int i = 0; i < list1.size(); i++) {
            for(int j = 0; j < list2.size(); j++) {
                if(list1[i] == list2[j]) {
                    sumOfIndex = min(sumOfIndex, i + j);
                }
            }
        }

        for(int i = 0; i < list1.size(); i++) {
            for(int j = 0; j < list2.size(); j++) {
                if(list1[i] == list2[j] && i + j == sumOfIndex) {
                    ans.push_back(list1[i]);
                }
            }
        }
        return ans;
    }
};

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.