티스토리 뷰
728x90
정규표현식의 편리함을 느끼게 된 해설이 있어서 작성한다.
1. skill_trees를 for loop 돌린다.
2. replaceAll("[^" + skill + "]", "")를 통해 String skill에 포함된 char가 아닌 모든 값을 제거한다.
여기서 사용된 정규표현식은 [^]인데 대괄호 내에 문자가 아닌 모든 것을 고르라는 표현식이며
replaceAll([^], "")을 통해 char를 제거한 것이다.
3. 문제의 조건이 처음의 스킬을 배워야 다음 스킬을 배울 수 있는 것이었으므로
어떤 스킬을 어떤 순서로 배우든간에 정답이 되려면 반드시 처음 스킬부터 순서대로 배워야한다.
즉 스킬트리가 "ABC"일때 정규화 이후의 검사해야할 스킬트리가 "BC"라면 indexOf를 하면 0이 아닌 1이 나올 것이다.
이 경우 A를 배워야만 B-C ... 를 배워나갈 수 있으므로 정답이 아니다.
즉 indexOf의 값이 == 0 이 아니라면 반드시 정답이 아니다.
class Solution {
public int solution(String skill, String[] skill_trees) {
int answer = 0;
for (String skillTree : skill_trees) {
skillTree = skillTree.replaceAll("[^" + skill + "]", "");
if (skill.indexOf(skillTree) == 0) answer++;
}
return answer;
}
}
레퍼런스
https://school.programmers.co.kr/learn/courses/30/lessons/49993#fn1
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[Java] 정규표현식 사용하기
정규표현식을 익혀봅시다. 😊
velog.io
'CodingTest' 카테고리의 다른 글
메뉴 리뉴얼 (Java, DFS, 프로그래머스) (0) | 2022.08.16 |
---|---|
다리를 지나는 트럭 (Java, 큐, 프로그래머스) (0) | 2022.08.15 |
주차 요금 계산 (Java, 구현, 프로그래머스) (0) | 2022.07.14 |
N-Queen (Java, Backtracking, 프로그래머스) (0) | 2022.07.14 |
206. Reverse Linked List (Java, LinkedList, Leetcode) (0) | 2022.07.14 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- RequestBody
- vim
- 레디스
- ModelAttribute
- lunarvim
- neovim
- IDE
- RequestParam
- 배포
- 도커
- JavaScript
- 루나빔
- 아키텍처
- RequestPart
- Dap
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함