프로그래머스 코딩(자바)/Level 0
Programmers Level 0 - A로 B 만들기
kjwc
2023. 3. 3. 15:00
728x90
문제 설명
문자열 before와 after가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 0 < before의 길이 == after의 길이 < 1,000
- before와 after는 모두 소문자로 이루어져 있습니다.
입출력 예beforeafterresult
before | after | result |
"olleh" | "hello" | 1 |
"allpe" | "apple" | 0 |
입출력 예 설명
입출력 예 #1
- "olleh"의 순서를 바꾸면 "hello"를 만들 수 있습니다.
입출력 예 #2
- "allpe"의 순서를 바꿔도 "apple"을 만들 수 없습니다.
1
2
3
4
5
6
7
8
9
10
11
|
import java.util.Arrays;
class Solution {
public int solution(String before, String after) {
char[] ar1 = before.toCharArray();
Arrays.sort(ar1);
char[] ar2 = after.toCharArray();
Arrays.sort(ar2);
int answer = Arrays.equals(ar1, ar2) ? 1 : 0;
return answer;
}
}
|
입력된 두개의 문자열을 문자 단위로 정렬해서 같으면 만들 수 있는 것이다. toCharArray()로 문자 배열로 만들고 Arrays.sort()로 정렬하고 Arrays.equals()로 동일한 배열인지 판단한다. |
1
2
3
4
5
6
7
8
9
|
import java.util.stream.Collectors;
class Solution {
public int solution(String before, String after) {
return before.chars().sorted().boxed().collect(Collectors.toList())
.equals(
after.chars().sorted().boxed().collect(Collectors.toList())
) ? 1 : 0;
}
}
|
문자열을 IntStream으로 만들어 정렬하고 다시 List로 만든다. list.equals(list2)를 이용하여 일치 여부를 판단한다. 삼항 연사자를 이용하여 일치하면 1을 아니면 0을 리턴한다. |
728x90