383. Ransom Note

안창범·2023년 8월 31일
0

LeetCode Top Interview 150

목록 보기
14/27

문제

https://leetcode.com/problems/ransom-note/description/?envType=study-plan-v2&envId=top-interview-150

해결 방법

  • magazine에서 주어진 문자들로 ransomNote 문자열을 만들 수 있는지 체크하는 문제
  • 모든 문자는 알파벳 소문자로 구성되어 있음
  • magazine에 각각의 알파벳이 몇번씩 나오는지 체크해주고, ransomNote에서 특정 알파벳이 magazine에 나온 횟수보다 크다면 false return
  • 모두 통과하면 true return

코드

class Solution {
    public boolean canConstruct(String ransomNote, String magazine) {

        if (ransomNote.length() > magazine.length()) {
            return false;
        }

        int[] alphabet = new int[26];
        for (int i = 0 ; i < magazine.length() ; i ++) {
            char c = magazine.charAt(i);
            alphabet[c - 'a'] ++;
        }

        for (int i = 0 ; i < ransomNote.length() ; i ++) {
            char c = ransomNote.charAt(i);
            alphabet[c - 'a'] --;
            if (alphabet[c - 'a'] < 0) {
                return false;
            }
        }

        return true;
    }
}

결과

0개의 댓글

관련 채용 정보