A로 B만들기 JAVA
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
문제 설명 : 문자열 before와 after가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요.
처음 작성한 코드 : 통과는 하는데, 제출하면 테스트케이스 몇군데에서 틀렸다고 나옴.
class Solution {
public int solution(String before, String after) {
int answer = 0;
String temp = "";
String[] bs = before.split("");
for(int i=bs.length-1; i>=0 ; i--){
temp += bs[i];
}
System.out.println(temp);
if( temp.equals(after) ) answer = 1;
return answer;
}
}
구글링 해보니까 내가 문제를 잘못 생각했었다. 반대로 뒤집기만 해서, 뒤집은 문자가 after 매개변수로 받은 문자열과 같은지 아닌지... 그렇게만 생각했었다보니....!! 문제를 제대로 이해하지 못한 죄.....😱
두 번째 코드 : (통과됨) 많은 분들이 비교하기전에 정렬을 하시는 것을 보고 알게됨...!!! 감사합니다~
import java.util.*;
class Solution {
public int solution(String before, String after) {
int answer = 1;
String temp = "";
String[] bfArray = before.split("");
String[] afArray = after.split("");
Arrays.sort(bfArray);
Arrays.sort(afArray);
for(int i=0;i<bfArray.length; i++){
if ( !afArray[i].equals(bfArray[i])) answer = 0 ;
}
return answer;
}
}
참고 블로그 : https://2-nough.tistory.com/m/68
728x90
300x250