์šฐ๊ทœ์ด์ธ์šฐ์œค
Eager To Learn ๐ŸŒŒ
์šฐ๊ทœ์ด์ธ์šฐ์œค
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿก ํ™ˆ
  • ๐Ÿš€ ๊นƒํ—ˆ๋ธŒ
  • โ›… ํƒœ๊ทธ ํด๋ผ์šฐ๋“œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (217)
    • ๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS (170)
      • JAVA (82)
      • MYSQL (1)
      • Docker (2)
      • PYTHON (24)
      • LeetCode 150 (39)
      • Algorithm ๊ธฐ๋ฒ• (1)
      • ๋ฐ”ํ‚น๋… (21)
    • ๋ธ”๋กœ๊ทธ ์ด์‚ฌ (0)
    • Error (1)
    • CS (15)
      • DataBase (2)
      • OS (7)
      • Network (1)
      • Spring (1)
      • ์ž๋ฃŒ๊ตฌ์กฐ (3)
      • Java (1)
    • Learned (7)
      • Spring (7)
    • ๊ฐœ๋ฐœ์„œ์  (15)
      • ๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ (1)
      • ์˜ค๋ธŒ์ ํŠธ - ์กฐ์˜ํ˜ธ (7)
      • ์นœ์ ˆํ•œ SQL ํŠœ๋‹ (7)
    • ํšŒ๊ณ  (2)
hELLO ยท Designed By ์ •์ƒ์šฐ.
์šฐ๊ทœ์ด์ธ์šฐ์œค

Eager To Learn ๐ŸŒŒ

๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS/LeetCode 150

[Java] 242. Valid Anagram

2023. 8. 30. 12:35

๋ฌธ์ œ ํŒŒ์•…

๋‘ ๋ฌธ์ž์—ด s์™€ t๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

 

๋‘ ๋ฌธ์ž์—ด์„ ์ด๋ฃจ๋Š” ๋ฌธ์ž์˜ ์ข…๋ฅ˜์™€ ๊ฐœ์ˆ˜๊ฐ€ ๋™์ผํ•  ๋•Œ, Anagram ์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ

 

Anagram์ธ์ง€ ํŒ๋‹จํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

 


ํ’€์ด

 

1๏ธโƒฃ map์„ ์ด์šฉํ•œ ํ’€์ด

 

๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea

s ๋ฌธ์ž์—ด์„ ์ชผ๊ฐ  ํ›„, ๊ฐ ๋ฌธ์ž๋ณ„ ๊ฐœ์ˆ˜๋ฅผ map์— ๊ธฐ๋กํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  t ๋ฌธ์ž์—ด์„ ์ชผ๊ฐ  ํ›„, ์ˆœํšŒํ•˜๋ฉด์„œ map์— ๊ธฐ๋ก๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ๊ฐœ์ˆ˜๋ฅผ -1 ํ•œ๋‹ค.

๋งŒ์•ฝ, ๋ฌธ์ž๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๊ฐœ์ˆ˜๊ฐ€ 0๋ฏธ๋งŒ์ด ๋˜๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๋˜ํ•œ, ์• ์ดˆ์— ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅด๋‹ค๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

 

 

[Java] 383. Ransom Note

๋ฌธ์ œ ํŒŒ์•… ransomNote ๋ฌธ์ž์—ด์ด magazine ๋ฌธ์ž์—ด์˜ ๋ฌธ์ž๋“ค๋กœ ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ์œผ๋ฉด true๋ฅผ, ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. magazine์˜ ๋ฌธ์ž๋Š” ์ค‘๋ณต์œผ๋กœ ์—ฌ๋Ÿฌ๋ฒˆ ์“ฐ์ผ ์ˆ˜ ์—†๋‹ค. ํ’€์ด 1๏ธโƒฃ map์„ ์ด์šฉํ•œ ํ’€

yinq.tistory.com

 

์œ„ ๋ฌธ์ œ์™€ ๊ฑฐ์˜ ์œ ์‚ฌํ•œ ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

import java.util.*;

class Solution {
    public boolean isAnagram(String s, String t) {
        HashMap<Character, Integer> map = new HashMap<>();

        if (s.length() != t.length()) {
            return false;
        }

        char[] split = s.toCharArray();

        for (char ch : split) {
            map.put(ch, map.getOrDefault(ch, 0) + 1);
        }

        split = t.toCharArray();

        for (char ch : split) {
            if (!map.containsKey(ch) || map.get(ch) == 0) {
                return false;
            } else {
                map.put(ch, map.get(ch) - 1);
            }
        }

        return true;

    }
}

 

๊ฒฐ๊ณผ

 

2๏ธโƒฃ sort๋ฅผ ์ด์šฉํ•œ ํ’€์ด

๐Ÿ’ก ๋– ์˜ค๋ฅธ Idea

๋‘ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ ๊ฐ™๋‹ค๋ฉด, ์ชผ๊ฐ  ํ›„ ์ •๋ ฌํ–ˆ์„ ๋•Œ ๊ฐ™์€ ๋ฐฐ์—ด์ด ๋‚˜์˜ค๋ฉด Anagram์ž„์„ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค.

 

import java.util.*;
class Solution {
    public boolean isAnagram(String s, String t) {
        if (s.length() != t.length()) {
            return false;
        }

        char[] arr1 = s.toCharArray();
        char[] arr2 = t.toCharArray();

        Arrays.sort(arr1);
        Arrays.sort(arr2);

        for (int i = 0; i < arr1.length; i++) {
            if (arr1[i] != arr2[i]) {
                return false;
            }
        }

        return true;

    }
}

 

๊ฒฐ๊ณผ

 


๐Ÿ“– ํšŒ๊ณ 

 

HashMap์„ ์‚ฌ์šฉํ•ด์„œ ํ•ด๊ฒฐํ•ด์•ผํ•˜๋Š” ๋ฌธ์ œ๋Š” ๊ฑฐ์˜ ๋น„์Šทํ•œ ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

 

๋˜ํ•œ, ํ’€์ด ๋ฐฉ์‹์ด ์ •ํ˜•ํ™”๋˜์–ด์žˆ์–ด์„œ, ํŠน์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ๋ฒ• ๊ฐ™์€ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„์„œ ๊นŒ๋‹ค๋กœ์šด ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

    '๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS/LeetCode 150' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Java] 162. Find Peak Element
    • [Java] 148. Sort List
    • [Java] 383. Ransom Note
    • [Java] 219. Contains Duplicate II
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ๊ฐœ๋ฐœ์ž ๊ฟˆ๋‚˜๋ฌด

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”