[LeetCode] Count Common Words With One Occurrence

아르당·2026년 8월 4일

LeetCode

목록 보기
445/583
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

2개의 문자열 words1과 words2가 주어졌을 때, 두 배열에서 각각 정확히 1번 나타나는 문자열의 개수를 반환해라.

Example

#1
Input: words1 = ["leetcode", "is", "amazing", "as", "is"], words2 = ["amazing", "leetcode", "is"]
Output: 2

#2
Input: words1 = ["b", "bb", "bbb"], words2 = ["a", "aa", "aaa"]
Output: 0

#3
Input: words1 = ["a", "ab"], words2 = ["a", "a", "a", "ab"]
Output: 1

Constraints

  • 1 <= words1.length, words2.length <= 1000
  • 1 <= words1[i].length, words2[j].length <= 30
  • words1[i]과 words2[j]는 오직 영어 소문자로 구성된다.

Solved

class Solution {
    public int countWords(String[] words1, String[] words2) {
        Map<String, Integer> word1 = new HashMap<>();
        Map<String, Integer> word2 = new HashMap<>();

        for(String word : words1){
            word1.put(word, word1.getOrDefault(word, 0) + 1);
        }

        for(String word : words2){
            word2.put(word, word2.getOrDefault(word, 0) + 1);
        }

        int count = 0;

        for(String word : words1){
            if(word1.get(word) == 1 && word2.getOrDefault(word, 0) == 1){
                count++;
            }
        }

        return count;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글