- 내 풀이
class Solution {
public int solution(String before, String after) {
int answer = 0;
StringBuilder reverse = new StringBuilder();
reverse.append(before);
before = String.valueOf(reverse.reverse());
if(before.equals(after)){
answer = 1;
}
return answer;
}
}
class Solution {
public int solution(String before, String after) {
int answer = 0;
String a = "";
for (int i = before.length() - 1; i >= 0; i--) {
a += before.charAt(i);
}
if (a.equals(after)) {
answer = 1;
}
return answer;
}
}
첫번째 코드로 제출을 해보니 여러개가 실패하였고 아래 처럼 다시 바꿔서 해봐도 똑같이 실패를 하였다.
before의 문자를 뒤집어서 after랑 비교하면 되는 문제가 아니였던가??
구글링을 하던 중 두 변수를 오름차순으로 정렬하여 비교하면 된다는 글이 있어 해보았다.
import java.util.Arrays;
class Solution {
public int solution(String before, String after) {
int answer = 0;
String[] b = before.split("");
String[] a = after.split("");
Arrays.sort(b);
Arrays.sort(a);
before = new String(Arrays.toString(b));
after = new String(Arrays.toString(a));
if (before.equals(after)){
answer = 1;
}
return answer;
}
}
결론은 정상적으로 동작하여 제출 후 채점하기가 통과하였다.
문자의 오름차순과 쓰여져 있는 순서로의 비교는 다르지 않나 생각된다.
다른 사람의 풀이로 가보니 첫번째 코드리뷰에 나와 같은 생각을 하는 댓글을 발견하였다.
아마 댓글이 없을 뿐 비슷하게 생각하신 분들이 더 있지 않을까 생각해본다.
- 다른 사람 풀이
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;
}
}
'프로그래머스 > [프로그래머스 - JAVA] Lv.0' 카테고리의 다른 글
[프로그래머스 - JAVA] 팩토리얼 (0) | 2023.03.12 |
---|---|
[프로그래머스 - JAVA] 2차원으로 만들기 (0) | 2023.03.11 |
[프로그래머스 - JAVA] 모스부호(1) (0) | 2023.03.11 |
[프로그래머스 -JAVA] 중복된 문자 제거 (0) | 2023.03.11 |
프로그래머스 시작하기 (2) | 2023.03.11 |
댓글