알고리즘/백준 (68) 썸네일형 리스트형 백준 11725 트리의 부모찾기-C++ 모든 트리문제를 트리구조로 만들어서 풀 필요는 없다. 코드의 2~4줄의 주석처럼 코딩을 했더라면 아마 100줄이상은 분량이 나왔을거다. 문제의 핵심은 각 연결된 두 정점이 있을 때, 둘 중 무엇이 start node고 무엇이 end node인지 모른다는 것이다. 모를 때는 pair로 접근하는 것은 어려운것 같고, 양방향으로 탐색을 해야하기 때문에 벡터에다가 node1 - node2 , node2 - node1 두 가지 모두를 집어넣으면 된다는 점이다. 이렇게 벡터로 트리를 구현한 다음, dfs로 방문 여부를 판단하면서 부모 노드를 기록하면서 진행하면 된다. 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.. 백준 1991 트리순회 - 이진트리와 재귀함수 (C++) 작년에 배운 자료구조도 오랜만에 복습할겸, 사실 지금 백준은 c++를 공부중이며 짜는 중이라 클래스 개념도 잡을겸 AC받은 코드를 보면서 카피해서 코딩했다. 전위 순회, 중위 순회 및 후위 순회의 출력 방식은 위에 자세히 설명되어 있고, 왼쪽 오른쪽을 탐색할때, 재귀함수가 필요한 부분은 그때마다 호출해서 출력해주면 된다. 나는 자료구조를 자바로 공부해서.. C++ 코드는 얼마나 다를까 봤는데 사실 문법빼곤 다 똑같아서 습득하는데는 얼마 걸리진 않았다. 나름 처음보고 신기했던(?) 문법은 1. public method를 public: 밑의 인덴트로 설정하는것 2. 클래스 메소드를 부를때는 클래스::메소드(파라미터) 형식 정도.. 복습하면서 풀기 괜찮았던 문제. 1 2 3 4 5 6 7 8 9 10 11 1.. 백준 2884 알람시계 (입출력)- C++ cin cout과 45분을 시,분에 더하고 빼주는 부분만 신경쓰면 크게 어려운 문제는 아니다. 0시인 경우는 따로 고려를 해주어야 한다. 1 2 3 4 5 6 7 8 9 #include using namespace std; int h,m; int main(void){ cin>>h>>m; if(m>=45) cout 백준 2146 다리만들기 - bfs 2번 활용 (C++) -백준의 다리만들기 문제. 각각의 메소드에 대해서 설명하자면 input() : 그냥 주어진 N과 숫자들을 가지고 맵을 만드는 메소드. 이때 넣어줄때 섬을 1이아닌 -1로 넣어주는데 이는 넘버가 마킹되지 않은 섬을 뜻한다. 1부터 섬을 마킹하는데 1로 맵에 넣을 경우 겹치므로 -1로 넣어주었다. landlabel(a,b,L) a,b에 있는 섬을 L로 마킹해 주는 메소드. bfs를 통해서 탐색을 안한 섬들을 순차적으로 큐에 넣어 탐색 후, 아직 넘버링이 안된 섬의 경우에 L로 넘버링을 해준다. bfs(i) : 섬 넘버 i에 대해서, 다음 섬으로 가기까지 최소 다리수를 구하는 메소드. 정답을 1씩 증가시키면서 가능한 모든 경우의 수를 bfs로 탐색한 후에, 다음 섬으로 도착 하자마자 리턴하고 종료. main(.. 이전 1 ··· 6 7 8 9 다음