728x90
반응형
해커랭크 - https://www.hackerrank.com/
Prepare > Java > Strings > Java Anagrams
두 문자열 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
반응형
'> 개발-IT-인터넷 > > JAVA' 카테고리의 다른 글
[해커랭크(HackerRank) JAVA 풀이] - Pattern Syntax Checker (0) | 2021.10.01 |
---|---|
[해커랭크(HackerRank) JAVA 풀이] - Java String Tokens (0) | 2021.10.01 |
[해커랭크(HackerRank) JAVA 풀이] - Java Date and Time (0) | 2021.10.01 |
[해커랭크(HackerRank) JAVA 풀이] - Java String Reverse (0) | 2021.09.01 |
[해커랭크(HackerRank) JAVA 풀이] - Java Substring Comparisons (0) | 2021.08.31 |