https://school.programmers.co.kr/learn/courses/30/lessons/49993
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
주요 포인트 및 문제 리뷰
- 처음에 문제를 풀 때 skill_trees 문자열에서 필수 스킬에 해당하는 문자들의 인덱스를 찾아서 오름차순 비교할 경우 기존이랑 동일한지 확인하는 구조로 처리를 했었다. 하지만 채점이 틀렸기 때문에 다시 생각할 필요가 있었다.
- 구조를 다시 생각해보니 skill에 포함하지 않은 문자들은 필요하지 않는 정보이기 때문에 없어도 됐었다.
- replaceAll 메서드에 정규표현식을 사용하여 skill 문자열에 포함되지 않는 문자들을 공백으로 바꿔주었다.
- 어떤 스킬의 선행스킬은 필수지만 후행은 선택이기 때문에 replaceAll을 적용시킨 문자열의 길이만큼 skill 문자열과 동일한지 비교하여 주었다.
소스코드
class Solution {
public int solution(String skill, String[] skill_trees) {
int answer = 0;
for (String s : skill_trees) {
String str = s.replaceAll("[^" + skill + "]", "");
if (skill.substring(0, str.length()).equals(str)) {
answer++;
}
}
return answer;
}
}
'프로그래머스' 카테고리의 다른 글
| 프로그래머스(자바, Java) - Level2. 2개 이하로 다른 비트 (0) | 2023.02.07 |
|---|---|
| 프로그래머스(자바, Java) - Level2. 할인행사 (1) | 2023.01.10 |
| 프로그래머스(자바, Java) - Level2. 귤 고르기 (1) | 2022.12.24 |
| 프로그래머스(자바, Java) - Level2. n진수 게임 (0) | 2022.12.23 |
| 프로그래머스(자바, Java) - Level2. 영어 끝말잇기 (0) | 2022.12.08 |