-
[프로그래머스] 스킬트리 - Java알고리즘 문제 풀이 2024. 5. 8. 01:27
문제 - 스킬트리
https://school.programmers.co.kr/learn/courses/30/lessons/49993
문제 설명
제한사항
입출력 예
skill skill_trees return "CBD" ["BACDE", "CBADF", "AECB", "BDA"] 2
접근 방법
- 문제를 봤을때 게임 관련한 문제라서 흥미롭게 느껴졌다
- 문제를 읽고 나서 Queue로 풀면 되겠다라고 생각을 했습니다 왜냐하면 스킬에 순서가 있어서 이다
하지만 큐의 특성상 큐는 앞 뒤에 있는 것만 조회 및 삭제가 되기 때문에 구현이 복잡 해 져서 큐는 적절하지 않은 것 같다
작성자는 큐로 하려고 30분동안 헤매었다...
- 생각을 하던중 다르게 생각해서 skill_trees에 있는 것들을 skill에 있는 문자만 남겨두게 하면 되지 않을까? 라고 의문이 들어
다른 자료구조를 사용하지 않고 오직 문자열로만 처리를 해주면 된다라고 깨달아서 구현을 하였다
코드 작성
class Solution { public int solution(String skill, String[] skill_trees) { int answer = 0; for (String skillTree : skill_trees) { String[] split = skillTree.split(""); StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < split.length; i++) { if (skill.contains(split[i])) { stringBuilder.append(split[i]); } } boolean flag = false; for (int i = 0; i < stringBuilder.length(); i++) { if (skill.charAt(i) != stringBuilder.toString().charAt(i)) { flag = true; break; } } if (!flag) { answer += 1; } } return answer; } }
풀고 느낀점
- 문제를 그대로 받아들이지 말고 다르게 생각을 하는것도 중요한 것 같다
- 무작정 문제 읽고 바로 구현하려는 것 보다 생각을 좀 더 하면서 문제를 풀어보자
- 다른 사람들 한 것도 봤는데 정규식을 이용하여 깔끔하게 푼 사람도 있고 iterator를 활용해서 문제를 푼 사람도 있다
- 문제를 푼 후 다른 사람들이 어떻게 생각하고 풀었는지 코드를 보면서 배울 필요도 있다고 느껴졌다...
'알고리즘 문제 풀이' 카테고리의 다른 글
[프로그래머스] 의상 - Java (0) 2024.05.09 [프로그래머스] 기능개발 - Java (0) 2024.05.08 [프로그래머스] 같은 숫자는 싫어 - Java (0) 2024.05.06 [백준] 9372 상근이의 여행 - Java (0) 2024.05.03 [프로그래머스] 예상 대진표 -Java (0) 2024.05.02