https://school.programmers.co.kr/learn/courses/30/lessons/120886
[Hint] before과 after를 정렬했을 때 둘이 일치해야 함!
1. before와 after를 char[ ]형으로 변환해서 sort 해준다음 Arrays.equals( )를 통해서 같은지 안같은지 구분
2. alphabet이라는 char[ ] 배열 생성 뒤, 각각 해당하는 알파벳 인덱스에 값 넣고, 빼기, 만약에 before와 after가 같다면 배열에 아무것도 남지 않기 때문에 아무것도 남지 않는다면 1 남는게 있다면 0
1.
import java.util.Arrays;
class Solution {
public int solution(String before, String after) {
char[] charB = before.toCharArray();
char[] charA = after.toCharArray();
Arrays.sort(charB);
Arrays.sort(charA);
return Arrays.equals(charB, charA) ? 1 : 0;
}
}
- Arrays.equals()를 이용해서 배열이 똑같은 지 확인 가능!
2.
class Solution {
public int solution(String before, String after) {
char[] alphabet = new char[26];
for(char c : before.toCharArray()){
alphabet[c - 'a']++;
}
for(char c : after.toCharArray()){
alphabet[c - 'a']--;
}
for(char c : alphabet) {
if(c != 0) return 0; // if(c != 0 == true) return 0;
}
return 1;
}
}
- for문을 3번돌려서 느릴 줄 알았는데 1번과 크게 별 차이가 안나서 놀랐다.
- char 배열에서 null 값을 비교하려면 !=0으로 비교해야 한다. char 배열은 원시타입이 아니기 때문에 null을 사용할 수 없다..! !=0 해서 값이 있으면 true이고, 값이 없으면 false! if(c != 0 == true) return 0;
'algorithm > Programmers' 카테고리의 다른 글
[JAVA] 잘라서 배열로 저장하기 (0) | 2023.03.23 |
---|---|
[JAVA] K의 개수 (0) | 2023.03.20 |
[JAVA] 문자열 정렬하기 (2) (0) | 2023.03.20 |
[JAVA] 숫자 찾기 (0) | 2023.03.20 |
[JAVA] 최댓값 만들기(2) (0) | 2023.03.20 |