> 개발-IT-인터넷/> JAVA

[해커랭크(HackerRank) JAVA 풀이] - Java Anagrams

jini:) 2021. 10. 1. 16:29
728x90
반응형
해커랭크 - https://www.hackerrank.com/
Prepare > Java > Strings > Java Anagrams
 

HackerRank

HackerRank is the market-leading technical assessment and remote interview solution for hiring developers. Learn how to hire technical talent from anywhere!

www.hackerrank.com

 

두 문자열 a와 b는 동일한 빈도로 동일한 문자를 모두 포함하는 경우 아나그램이라고 합니다. 이 챌린지의 경우 테스트는 대소문자를 구분하지 않습니다. 예를 들어 CAT의 아나그램은 CAT, ACT, tac, TCA, aTC 및 CtA입니다.

 

Function Description

에디터에서 isAnagram 기능을 완성하세요.

isAnagram에는 다음 매개변수가 있습니다.

  • string A : 첫번째 문자열
  • string B : 두번째 문자열

 

Returns

  • boolean : a와 b가 대소문자를 구분하지 않는 아나그램이면 true를 반환합니다. 그렇지 않으면 false를 반환합니다.

 

Input Format

  • 첫 번째 줄에는 문자열이 포함되어 있습니다.
  • 두 번째 줄에는 문자열 b가 있습니다.

 

Constraints

  • 1 ≤ length(a), length(b) ≤ 50
  • 문자열 a와 b는 영어 알파벳 문자로 구성됩니다.
  • 비교는 대소문자를 구분하지 않아야 합니다.

 

Sample Input 0

anagram
margana

 

Sample Output 0

Anagrams

 

Explanation 0

Character Frequency: anagram Frequency: margana
A or a 3 3
G or g 1 1
N or n 1 1
M or m 1 1
R or r 1 1

두 문자열에는 동일한 빈도의 동일한 문자가 모두 포함되어 있으므로 "Anagrams"를 출력합니다.

 

 

Sample Input 1

anagramm
marganaa

 

Sample Output 1

Not Anagrams

 

Explanation 1

Character Frequency: anagram Frequency: margana
A or a 3 4
G or g 1 1
N or n 1 1
M or m 2 1
R or r 1 1

두 문자열은 같은 수의 a와 m을 포함하지 않으므로 "Not Anagrams"를 출력합니다.

 

Sample Input 2

Hello
hello

 

Sample Output 2

Anagrams

 

Explanation 2

Character Frequency: Hello Frequency: hello
E or e 1 1
H or h 1 1
L or l 2 2
O or o 1 1

두 문자열에는 동일한 빈도의 동일한 문자가 모두 포함되어 있으므로 "Anagrams"를 출력합니다.

 

 

Code :

import java.util.Scanner;

public class Solution {

    static boolean isAnagram(String a, String b) {
        // Complete the function
        String aa = a.toUpperCase();
        String bb = b.toUpperCase();
        
        char[] arr1 = aa.toCharArray();
        char[] arr2 = bb.toCharArray();
        
        java.util.Arrays.sort(arr1);
        java.util.Arrays.sort(arr2);
        
        return java.util.Arrays.equals(arr1, arr2);
        
    }

    public static void main(String[] args) {
    
        Scanner scan = new Scanner(System.in);
        String a = scan.next();
        String b = scan.next();
        scan.close();
        boolean ret = isAnagram(a, b);
        System.out.println( (ret) ? "Anagrams" : "Not Anagrams" );
    }
}

 

// 에디터에서 import 추가가 안되는 상황이었다.

toCharArray()
문자열을 char 배열 형태로 변경한다. (공백포함)

Arrays.sort()
배열을 오름차순으로 정렬

Arrays.equals()
배열 내용 비교

 

 

 

개인 공부를 위한 포스팅입니다.
모든 번역, 코드는 완벽하지 않을 수 있습니다.

 

 

 

728x90
반응형