728x90
1. 문제 설명
2. 풀이 방법
정해진 순서대로, 스킬을 배워야 하므로 skill의 각 자리수에 인덱스를 부여해 체크 하기로 하였다.
개인적으로 풀이 방법이 백준 18770과 유사한 것 같다.
[작성 코드]
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
31
|
import java.util.*;
class Solution {
public int solution(String skill, String[] skill_trees) {
int answer = 0;
HashMap<Character,Integer> map=new HashMap<>();
for(int i=0;i<skill.length();i++){
map.put(skill.charAt(i),i);
}
for(int i=0;i<skill_trees.length;i++){
String s=skill_trees[i];
int idx=0;
boolean chk=true;
for(int j=0;j<s.length();j++){
if(map.containsKey(s.charAt(j))){
if(map.get(s.charAt(j))!=idx){
chk=false;
break;
}
else {
idx++;
}
}
}
if(chk) answer++;
}
return answer;
}
}
|
728x90
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 길 찾기 게임 (0) | 2023.09.23 |
---|---|
[프로그래머스] 파일명 정렬 (0) | 2022.05.10 |
[프로그래머스] 섬 연결하기 (0) | 2022.05.04 |
[프로그래머스] 행렬의 곱셈 (0) | 2022.04.30 |
[프로그래머스] N개의 최소공배수 (0) | 2022.04.30 |