💬 문제 설명
문자열 before와 after가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요.
🚫 제한 사항
- 0 < before의 길이 == after의 길이 < 1,000
- before와 after는 모두 소문자로 이루어져 있습니다.
📢 입출력 예

👨🏫 입출력 예 설명

📃 제출 코드
import java.util.Arrays;
class Solution {
public int solution(String before, String after) {
int answer = 1;
char[] beforeArr = before.toCharArray();
char[] afterArr = after.toCharArray();
for (int i = 0; i < beforeArr.length; i++) {
for (int j = 0; j < afterArr.length; j++) {
if (beforeArr[i] == afterArr[j]) {
afterArr[j] = ' ';
break;
}
}
}
for (char ch : afterArr) {
if (ch != ' ') {
answer = 0;
break;
}
}
return answer;
}
}
✏ 해결방법 & 배운점
`before`와 `after` 문자열을 각각 `char[]` 배열로 변환하고, 이중 반복문을 통해 배열을 순회하며` before`의 각 문자가 `after`에 포함되어 있는지 확인합니다. 만약 문자가 일치하면, 해당 문자를 `afterArr`배열에서 공백 문자(' ')으로 변경하였고 `afterArr` 배열을 검사하여 모든 원소가 공백 문자로 채워졌을 때 1을 반환하도록 코드를 작성하였습니다..
다른분이 풀이한 소스코드
import java.util.Arrays;
class Solution {
public int solution(String before, String after) {
char[] a = before.toCharArray();
char[] b = after.toCharArray();
Arrays.sort(a);
Arrays.sort(b);
return new String(a).equals(new String(b)) ? 1 :0;
}
}
++ 문자열을 배열로 만들어 정렬하고 다시 문자열로 만들어 비교하는 방법 왜 이생각을 못했지..
'PS > 프로그래머스 입문 100제' 카테고리의 다른 글
| [프로그래머스] LV.0 가까운 수 - 자바 [67/100] (0) | 2024.06.26 |
|---|---|
| [프로그래머스] LV.0 K의 개수 - 자바 [66/100] (0) | 2024.06.26 |
| [프로그래머스] LV.0 숨어있는 숫자의 덧셈 (2) - 자바 [64/100] (0) | 2024.06.26 |
| [프로그래머스] LV.0 팩토리얼 - 자바 [63/100] (0) | 2024.06.26 |
| [프로그래머스] LV.0 모스부호 (1) - 자바 [62/100] (0) | 2024.06.26 |
