프로그래머스 코딩테스트 연습 'A로 B 만들기' 문제입니다.
https://school.programmers.co.kr/learn/courses/30/lessons/120886
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
❓문제 설명
문자열 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 = 0;
char[] b = before.toCharArray(), a = after.toCharArray();
Arrays.sort(b);
Arrays.sort(a);
String result1 = new String(b), result2 = new String(a);
if(result1.equals(result2))
answer = 1;
return answer;
}
}
🗣️ 코드 설명
- 먼저 매개변수 before과 after을 char배열인 b와 a에 toCharArray메서드를 이용해 넣었다. toCharArray는 Arrays클래스에 상속되어있다.
- Arrays클래스에 상속 되어있는 sort메서드를 사용해 정렬을 했다.
- String 생성자를 이용해 b배열과 a배열을 각각 result1과 result2 문자열로 변환했다.
- equals메서드를 이용해 result1과 result2 문자열을 비교했다.
💦 어려웠던 점
- 이 문제를 이해하지 못했다. before문자열을 반대로 반전시켜서 after과 같으면 1을 리턴하는 문제인줄 알고 아래 사진처럼 풀었다. 하지만 문제를 다시 읽어보니 그저 순서를 바꿔서 같을 때 1을 리턴하는 것이었다. 이를 통해 문제를 끝까지 잘 이해해야겠다고 느꼈다.
- 문자열을 비교할 때 equals메서드를 사용해야한다는 것을 까먹어서 중간에 시간이 걸렸다.
⭐ 새롭게 알게 된
toCharArray 메서드 == 문자열을 char배열로 변환시키는 메서드
사용 예) char[ ] b = before.toCharArray();
Arrays클래스에 상속된 메서드이다. import java.util.Arrays;
'코딩테스트 회고록 > 코테_Java' 카테고리의 다른 글
[JAVA] 프로그래머스 - 나이 출력 (0) | 2023.01.31 |
---|---|
[JAVA] 프로그래머스 - 팩토리얼 (0) | 2023.01.26 |
[JAVA] 프로그래머스 - 제곱수 판별하기 (0) | 2023.01.13 |
[JAVA] 프로그래머스 - 잘라서 배열로 저장하기 (0) | 2023.01.10 |
[JAVA] 프로그래머스 - n의 배수 고르기 (0) | 2023.01.07 |