반응형
문제 설명
문자열 before와 after가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 0 < before의 길이 == after의 길이 < 1,000
- before와 after는 모두 소문자로 이루어져 있습니다.
before과 after를 String 배열로 변환하고, after는 따로 ArrayList 배열로 새로 초기화했다.
before과 after를 하나하나 비교하여 같은 값이 있으면, 만든 ArrayList배열의 요소에서 해당하는 요소를 제거해 주었다.
결과적으로 ArrayList 배열이 비어있으면 before로 after 만드는것이 가능한 것으로 판단, 1을 리턴하고 비어있지 않으면 0을 리턴하였다.
좋은 코드는 아닌 것 같다. 다른 사람들의 풀이를 보고 다시 공부해야 할 것 같다.
import java.util.ArrayList;
class Solution {
public int solution(String before, String after) {
ArrayList<String> result = new ArrayList();
String[]bef = before.split("");
String[]aft = after.split("");
for(String a : aft)result.add(a);
for(int i = 0; i<bef.length;i++) {
for(int j = 0; j<aft.length;j++) {
if(bef[i].equals(aft[j])) {
result.remove(aft[j]);
break;
}
}
}
if(result.isEmpty())return 1;
else return 0;
}
}
반응형
'코딩테스트 > Programmers_LV0' 카테고리의 다른 글
Programmers_JAVA_치킨 쿠폰 (0) | 2022.11.21 |
---|---|
Programmers_JAVA_이진수 더하기 (0) | 2022.11.21 |
Programmers_JAVA_K의 개수 (0) | 2022.11.21 |
Programmers_JAVA_중복된 문자 제거 (0) | 2022.11.18 |
Programmers_JAVA_삼각형의 완성조건 (0) | 2022.11.18 |