본문 바로가기

전체 글34

Naming BackgroundC++는 구글의 많은 오픈 소스 프로젝트에서 사용되는 주요 개발 언어 중 하나입니다모든 C++프로그래머가 알다시피, C++은 강력한 기능을 제공하지만, 이러한 강력함은 복잡성을 동반하며, 이로 인해 코드가 버그가 발생하기 쉽고, 읽기 및 유지 관리가 어려워질 수 있습니다 이 가이드의 목표는 C++ 언어 기능을 생산적으로 사용할 수 있도록 하면서도 코드의 복잡성을 관리하는 데 있습니다이 규칙들은 코드 베이스를 관리 간으하게 유지하는 동시에 개발자들이 C++ 언어 기능을 효과적으로 사용할 수 있도록 돕는 것을 목표로 합니다 스타일, 또는 가독성이라고 불리우는 것은 우리의 C++ 코드에 적용되는 관습을 의미합니다스타일이라는 용어는 다소 잘못된 명칭일 수 있는데, 이 규칙들은 단순히 소스 파일.. 2024. 7. 17.
Google C++ Style Guide 들어가기 앞서 C++ 작성 스타일에 대해 일관성이 필요하다고 느꼈고 그 중 가장 보편적이고 많이 쓰이는 Google의 C++ 작성 스타일을 default로 작성해야겠다고 생각이 들었다 물론 회사나 팀에 들어가게 되면, 그곳의 레퍼런스나 스타일을 따라야 하겠지만 나만의 기준이 있는것이 필요하다고 생각이들고 일관성 있게 작성함으로서 가독성을 높이기위해 시작하게 되었다 이 카테고리에는 단순한 번역이 들어서게 되겠지만 앞으로 작성될 내 코드들은 모두 일관성있는 Google C++ Style을 따라가게 될 것이다  https://google.github.io/styleguide/cppguide.html 2024. 7. 17.
1110. Delete Nodes And Return Forest 문제 요약:링크 Input:Input: root = [1,2,3,4,5,6,7], to_delete = [3,5] Output:Output: [[1,2,null,4],[6],[7]] 하나의 Binary Tree가 주어지고 삭제할 node들의 value들이 주어진다주어진 to_delete에 있는 value를 가진 node들을 모두 제거하고 그로부터 파생된 여러 Binary Tree들의 root들을 반환하라  문제 분석:모든 node들의 value값은 unique하다반환하는 root들의 순서는 상관없다풀이 과정: 삭제한 node의 자식들이 Binary Tree의 root가 된다, 또한 처음에 주어진 root node의 경우 삭제할 대상이 아니라면 반환해야 한다 필요한 변수는 다음과 같다deque    to_.. 2024. 7. 17.
2096. Step-By-Step Directions From a Binary Tree Node to Another 문제 요약:링크 Input:root = [5,1,2,3,null,6,4] - 이진트리의 root nodestartValue = 3 - 시작 노드의 valuedestValue = 6 - 목적지 노드의 value Output:"UURL" 입출력의 의미는 다음과 같다root = Binary Tree의 Root Node startValue = 시작 Node의 valuedestValue = 목적지 Mode의 value"U" = 부모Node로 이동"L" = 좌측 자식 Node 로 이동"R" = 우측 자식 Node 로 이동 주어진 Binary tree에서 startValue값을 가진 Node 부터 destValue값을 가진 Node 까지 이동하는 최소한의 이동 루트를 문자열로 반환하라  문제 분석:모든 노드들의 va.. 2024. 7. 17.
2196. Create Binary Tree From Descriptions 문제 요약:링크 Input:descriptions = [[20,15,1], [20,17,0], [50,20,1], [50,80,0], [80,19,1]] Output:[50,20,80,15,17,19] descriptions의 각 요소가 의미하는 다음과 같다[0]: 부모노드의 값[1]: 자식노드의 값[2]: 부모로부터의 자식노드의 위치 주어진 descriptions의 내용을 토대로 Binary Tree 를 만들어 반환하라  문제 분석:주어지는 descriptions는 Binary Tree 가 유효하도록 case가 주어진다descriptions에는 순서와 상관없이 들어온다각 값들은 unique 하게 들어온다 (중복 X)풀이 과정: 처음으로 감이 잘 오지 않는 문제였다descriptions의 정보들을 나눠서.. 2024. 7. 15.
726. Number of Atoms 문제 요약:링크 Input:formula = "K4(ON(SO3)2)2" Output:"K4N2O14S4" 원소기호와 기호 바로뒤에 원소의 개수가 따라온다닫히는 괄호 바로 다음에 숫자가 따라온다면 괄호 안의 전체 원소를 해당 수 만큼 곱한다원소의 개수가 1개인 경우에는 표기하지 않는다 주어진 원소 기호 공식의 괄호를 모두 벗겨낸 결과물을 반환하라출력시 원소기호는 정렬되며 첫글자가 같은 경우엔 다음 글자를 비교한다 들어오는 공식들은 모두 32bit 정수형을 넘지 않도록 설계되어 있다  풀이 과정: 처음에는 재귀, 스택이 떠올랐지만 재귀는 피하고 싶어서 보류했다우선은 숫자만 따로 두어야할 필요가 있다고 생각이 들었다그 이유로는 숫자만 따로 모아서 괄호를 기준으로 연산을 진행하게되면 연산이 편해질수 있으며 .. 2024. 7. 14.