Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Number Theory
- string
- implement
- Math
- Class
- greedy
- Counting
- 코테
- Matrix
- database
- two pointers
- 파이썬
- geometry
- 구현
- Tree
- Stack
- Method
- simulation
- Binary Search
- 자바
- sorting
- bit manipulation
- Data Structure
- dynamic programming
- java
- array
- Binary Tree
- hash table
- 코딩테스트
- SQL
Archives
- Today
- Total
코린이의 소소한 공부노트
[프로그래머스/Lv.2] 스킬트리 본문
1. Input
1) String skill
- 선행 스킬 순서를 나타낸다.
2) String[] skill_trees
- 유저들이 만든 스킬트리를 담은 배열이다.
2. Output
1) 가능한 스킬트리 개수를 반환
3. Constraint
1) 스킬은 알파벳 대문자로 표기하며, 모든 문자열은 알파벳 대문자로만 이루어져 있다.
2) 스킬 순서와 스킬트리는 문자열로 표기한다.
3) 선행 스킬 순서 skill의 길이는 1 이상 26 이하이며, 스킬은 중복해 주어지지 않는다.
4) skill_trees는 길이 1 이상 20 이하인 배열
5) skill_trees의 원소는 길이가 2 이상 26 이하인 문자열이며, 스킬이 중복해 주어지지 않는다.
4. Example
Input: skill="CBD", skill_trees=["BACDE", "CBADF", "AECB", "BDA"] -> Output: 2
설명:
- "BACDE": B 스킬을 배우기 전에 C 스킬을 먼저 배워야 하므로 불가능한 스킬트리
- "CBADF": 가능한 스킬트리
- "AECB": 가능한 스킬트리
- "BDA": B 스킬을 배우기 전에 C 스킬을 먼저 배워야 하므로 불가능한 스킬트리
5. Code
1) 첫 코드(2023/01/17)
int answer = 0;
for(int i=0 ; i<skill_trees.length ; i++){
skill_trees[i] = skill_trees[i].replaceAll("[^"+skill+"]","");
if(skill_trees[i].equals(skill.substring(0,skill_trees[i].length())))
answer++;
}
return answer;
2) 내가 구현하고자 했던 내용을 간단하게 구현한 다른사람의 코드(2023/01/17)
import java.util.*;
ArrayList<String> skillTrees = new ArrayList<String>(Arrays.asList(skill_trees));
Iterator<String> it = skillTrees.iterator();
while (it.hasNext()) {
if(skill.indexOf(it.next().replaceAll("[^" + skill + "]", "")) != 0)
it.remove();
}
return skillTrees.size();
- 2번코드가 복잡해보이지만, 이렇게 해야 더 좋은 코드이지 않을까라는 생각이 든다.
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[LeetCode/Medium] 151. Reverse Words in a String (0) | 2023.01.20 |
---|---|
[LeetCode/Medium] 137. Single Number II (0) | 2023.01.19 |
[LeetCode/Easy] 104. Maximum Depth of Binary Tree (0) | 2023.01.17 |
[LeetCode/Easy] 2351. First Letter to Appear Twice (0) | 2023.01.16 |
[LeetCode/Easy] 2347. Best Poker Hand (0) | 2023.01.16 |