[LeetCode/ Java] 383. Ransom Note

김하밍·2024년 2월 8일

알고리즘

목록 보기
14/22

Leetcode Ransom Note 문제

두 개의 문자열 ransomNote 와 magazine 이 주어집니다. magazine 에 사용된 문자들로 ransomNote 문자열을 만들 수 있으면 true, 만들 수 없으면 false 리턴하면 됩니다.

[ 접근 방식 ]


String magazine에 쓰인 문자들의 개수를 파악하여 ransomNote에 쓰인 각 문자의 개수가 magazine에 쓰인 개수보다 많으면 false 를 리턴하는 것입니다.

public class S0383 {
    public static void main(String[] args) {
        System.out.println(canConstruct("aa", "ab"));
    }

    public static boolean canConstruct(String ransomNote, String magazine) {
    
        if (magazine.length() < ransomNote.length()) {
            return false;
        }

        for (char c : ransomNote.toCharArray()) {

            int index = magazine.indexOf(c);

            if (index == -1) {
                return false;
            }

            magazine = magazine.substring(0, index) + magazine.substring(index + 1);
        }
        
        return true;
    }
}

⭐️ toCharArray() 를 사용하여 문자열 ransomNote 를 char 문자로 쪼개어 char[] 배열에 순서대로 값을 넣어 반환합니다.

⭐️ indexOf() 를 사용하여 ransomNote 의 각 문자의 위치를 구합니다.

⭐️ substring() 을 사용하여 for문으로 인해 반복하는 동작을 할 때에 중복을 제거합니다.

[참고]

자바 toCharArray() 의 사용방법

indexOf() 메서드의 사용 방법

substring() 메서드의 사용 방법

profile
나만의 언어로 기록하며 성장하기 !

0개의 댓글