반응형
🔺 문제
🔺 코드
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;
for(String st : skill_trees) {
boolean isOK = true; // 순서 맞는지 판단용 boolean 변수
int skillIdx = 0;
// 각 스킬 트리의 스킬 순서 확인
for(char current : st.toCharArray()) {
int order = skill.indexOf(current);
if(order == -1) continue; // 해당 스킬이 아니면 넘어감
if(order == skillIdx) { // 현재 스킬이 순서에 맞는 경우
skillIdx++;
}
else {
isOK = false;
break;
}
}
if(isOK) answer++; // 순서가 다 맞으면, 갯수 + 1
}
return answer;
}
}
|
cs |
🧩 해결 아이디어
- 각 스킬 트리를 돌면서, 순서가 맞는지 boolean 변수를 통해 판단한다.
- 해당 스킬 트리의 스킬이 순서에 맞는다면, 스킬 위치 인덱스에 +1을 한다.
- 순서에 맞지 않는다면, boolean 변수값을 false로 설정하고 반복문을 탈출한다.
- 순서가 다 맞으면, 정답 갯수 +1을 한다.
🔺 다른 풀이들
- 정규식을 활용해 skill과 다른 문자는 모두 제거하고,
제거된 문자열을 skill의 문자열 배열 순서와 비교하셨다.. .우와우
이렇게 푸는 게 맞는 듯 하다...
- [^s] : 특정 문자 s를 제외한 문자 치환
+ 이건 정규식 생각 못 했을 때 대신 활용할 수 있는 풀이...
💬 느낀 점
후암 쉽게 생각해서 빠르게 풀 수 있으면 좋겠다ㅠ
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
(참고)
✔ 챗지피티....
반응형
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Lv. 3] 베스트앨범 (JAVA) (0) | 2023.10.19 |
---|---|
[프로그래머스/Lv. 3] 야근 지수 (JAVA) (0) | 2023.10.19 |
[프로그래머스/Lv. 2] 다리를 지나는 트럭 (JAVA) (1) | 2023.10.18 |
[프로그래머스/Lv. 3] 단속카메라 (JAVA) (0) | 2023.10.18 |
[프로그래머스/Lv. 2] 가장 큰 수 (JAVA) (0) | 2023.10.17 |