프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제풀이
1. 정규식과 replaceAll을 이용하여 skill_trees 배열에 담긴 문자들을 skill에 포함된 문자를 제외하고는 "" 으로 공백처리한다.
( skill_trees[i].replaceAll("[^"+skill+"]", ""); )
| [ 0 ] | [ 1 ] | [ 2 ] | [ 3 ] | |
| 변경 전 | BACDE | CBADF | AECB | BDA |
| 변경 후 | BCD | CBD | CB | BD |
2. 변경된 문자열을 skill과 비교를 하는데, 변경된 문자열과 skill 의 0부터 변경된문자열의 길이만큼 잘라서 비교한다.
스킬이 중복하여 주어지지 않는다는 제한조건 때문.
| [ 0 ] | [ 1 ] | [ 2 ] | [ 3 ] | |
| 변경된 문자열 | BCD | CBD | CB | BC |
| skill.substring | CBD | CBD | CB | CB |
( 변경된 문자열.equals(skill.substring(0, 변경된 문자열 .length ( ) ) ) )
skill 에 해당하는 문자만 남긴 문자열은 길이와 상관없이 순서만 고려하면 되므로 위의 코드를 적용.
나의풀이 ( 코드 )
class Solution {
public int solution(String skill, String[] skill_trees) {
int answer = 0;
String check = "";
for (int i = 0; i < skill_trees.length; i++) {
check = skill_trees[i].replaceAll("[^"+skill+"]", "");
if(check.equals(skill.substring(0,check.length()))){
answer++;
}
}
return answer;
}
}'알고리즘 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스/JAVA 자바] [3차] 파일명 정렬 (1) | 2023.11.20 |
|---|---|
| [프로그래머스/JAVA 자바] 뒤에 있는 큰 수 찾기 (0) | 2023.11.20 |
| [프로그래머스/JAVA 자바] 주식가격 (0) | 2023.11.18 |
| [프로그래머스/JAVA 자바] 방문 길이 (0) | 2023.11.17 |
| [프로그래머스/JAVA 자바] 땅따먹기 (0) | 2023.11.12 |