🔺 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
🔺 코드
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를 제외한 문자 치환
[프로그래머스] 스킬트리 - Java
https://programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr 문제 문제 설명 선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다. 예를 들어 선행
hyojun.tistory.com
프로그래머스 - 스킬트리(JAVA)
문제 링크 문제 설명 선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다. 예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일때, 썬더를 배우려면 먼저 라이
hy-ung.tistory.com
프로그래머스 | 스킬트리 (Java)
🔑 해결 선행 스킬 순서 skill과 유저들이 만든 스킬트리를 담은 배열 skill_trees가 매개변수로 주어질 때, 가능한 스킬트리 개수를 return하는 solution 함수를 작성하는 문제이다.
velog.io
+ 이건 정규식 생각 못 했을 때 대신 활용할 수 있는 풀이...
[프로그래머스] [Java] 스킬트리
문제 설명 선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다. 예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일때, 썬더를 배우려면 먼저 라이트닝 볼트
mozzioi.tistory.com
💬 느낀 점
후암 쉽게 생각해서 빠르게 풀 수 있으면 좋겠다ㅠ
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 |