Free Lines Arrow
본문 바로가기
728x90

Algorithm77

[프로그래머스] 네트워크 문제 분석 친절하게 제목에 dfs/bfs 라고 쓰여있다. 탐색으로 문제를 풀면 될것 같다. 1 - 2 - 3 노드 가 연결 되어 있다고 하자. 그렇다면 1번 방문, 2번 방문, 3번 방문 하면서 방문을 하면 0 으로 만들어 주고 또 방문 하지 않도록 한다. 그렇 한번 순회를 할때마다 1씩 카운터를 올려 주면 총 노드의 집합이 몇개 인지 구 할수 있다. 코드 #include #include using namespace std; bool solve(int node, vector &computers) { if (!computers[node][node]) { return false; } computers[node][node] = 0; for (int i = 0; i < computers.size(); i++ ).. 2021. 7. 15.
[프로그래머스] 이진변환 반복 문제 분석 따로 크게 분석할게 없었다. 단 중요한건 제목부터 이진변환 반복이라는것. 즉 나는 2진변환로직 구현 -> 재귀로 반복 해주었다. 재귀로 계속 반복하다가 더이상 변환할게 없을때 중단 하였다. 구현 #include #include #include using namespace std; void solve(int size, int &delCnt, int &cnvCnt ); vector solution(string s) { vector answer; vector binVector; int delCnt = 0; int cnvCnt = 1; for(int i = 0 ; i < s.size(); i++){ if( s.at(i) == '0'){ delCnt++; } else { binVector.push_ba.. 2021. 6. 14.
[프로그래머스] 스킬트리 문제 분석 특별히 분석할게 없었다. 그냥 CBD 라면 스킬트리에서 해당 인덱스를 따로 저장한다. skill_trees의 BACDE 에서 C, B, D 각각의 index를 찾는다. C = 2, B = 0, D = 3 인덱스 순으로 보면 B(0), C(2), D(3) 순으로 스킬을 익혔기 때문에 BACDE 를 위반한다. 불가능함. 위처럼 1차검사 2차 예외 상황 선행스킬 하나만 찍었을때 3차 선행스킬 존재 하지 않을때 각각의 예외상황을 처리해 주었다. 코드 #include #include #include using namespace std; bool checkOrderFunction(string aSkill, string aSkillTree); int solution(string skill, vector s.. 2021. 6. 12.
[Algorithm] Binary Search Tree - Tree traversal Binary Search Tree 의 Tree traversal구현 마지막으로 순회를 알아보자 순회의 종류 Preorder(전위 순회) : Root -> Left -> Right 순으로 방문한다. Inorder(중위 순회) : Left -> Root -> Right 순으로 방문한다. Postorder(후위 순회) : Left -> Right-> Root 순으로 방문한다. 그림으로 보는게 빠를것 같다. 순회 예시 코드 public void preOrder(Node node) { if (node == null) { return; } System.out.println(node.getData()); preOrder(node.left); preOrder(node.right); } public void inOrde.. 2021. 6. 10.
728x90
반응형