본문 바로가기

알고리즘 문제 풀이207

226. Invert Binary 출처 Majority Element - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com [문제 설명] 노드를 좌우 대칭해서 반환하시오 [처음 생각한 접근 방법] 무지성 노드 교환 class Solution { public TreeNode invertTree(TreeNode root) { Queue q = new LinkedList(); if (root == null) { return null; } q.offer(root); while (!q.isEmpty()) {.. 2021. 7. 5.
169. Majority Element 출처 Majority Element - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com [문제 설명] 제일 많이 나온 원소를 리턴하시오. 참고로 제일 많이 나온 원소는 절반 이상 나옵니다. [처음 생각한 접근 방법] 1번 풀이 맵에 키는 숫자, 값은 숫자 개수로 넣어서 값이 n/2보다 커지면 키를 리턴. 매번 키를 넣을 때마다 map에서 조회를 하기 때문에 느림. 2번 풀이 1번이랑 똑같은 방식인데 맵에 값을 다 넣고 조회를 해줌. 맵에 값(숫자의 개수)가 절반보.. 2021. 7. 3.
557. Reverse Words in a String III 출처 Reverse Words in a String III - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com [문제 설명] 문장을 공백으로 나눠서 역순으로 정렬한 후 return abcd abc면 abcd -> dcba cba로 리턴하면 됨. [처음 생각한 접근 방법] 1.문자 배열을 주어진 String s랑 같은 크기의 배열(char[] charArray)을 만든다. 2.s를 0부터 차례대로 돌림. 그러다가 공백이 나오면 처음 인덱스부터 공백 이전 인덱스까지 .. 2021. 7. 1.
690. Employee Importance 출처 [문제 설명] 직원들의 리스트와 직원 아이디가 주어졌을 때, 주어진 아이디와 일치하는 직원의 중요도와 그 직원의 모든 부하직원들의 중요도의 총합을 구하시오. 예제에서는 주어진 id가 1이고, 부하 직원이 두명 밖에 없으므로 이 셋의 합인 5+3+3인 11이 됩니다. [처음 생각한 접근 방법] 보자마자 생각 난 건 일단 리스트로 직원이 주어졌으니 리스트(employees)에서 아이디(id)와 일치하는 employee를 찾아서 뽑는 것입니다. 그 후에 해당 employee를 Queue에 넣고 bfs로 모든 요소를 검색한 후, 각 요소들의 중요도(importance)를 총합을 구합니다. 이렇게 풀려고 했는데 막상 보니까 employee의 subordinates가 아이디(id)를 담은 리스트였습니다. 저는.. 2021. 7. 1.
안드로이드 Manifest 출처 이 글은 안드로이드 공식 홈페이지에서 작성 된 공식 가이드를 기반으로 개인적으로 요약 및 정리한 내용입니다. 틀린 내용이 있는 경우 정정 해주시면 감사하겠습니다. Manifest Manifest는 안드로이드 프로젝트에 존재하는 디렉터리로, App을 구동하는데 필요한 정보들을 담거나 Activity의 관리를 해줍니다. 인텐트 컴포넌트에 액션, 데이터 등을 전달하는 메시지 컴포넌트 인텐트 필터 Intent는 메시징 객체로, 다른 앱 구성 요소로부터 작업을 요청하는 데 사용할 수 있습니다.(수신할 수 있는 인텐트를 정의합니다.) 인텐트 필터는 Android 플랫폼의 매우 강력한 기능입니다. 인텐트 필터는 명시적 요청뿐만 아니라 암시적 요청을 기반으로도 활동을 실행하는 기능을 제공합니다. 예를 들어 명시적.. 2021. 6. 29.
104. Maximum Depth of Binary Tree 최대 깊이를 구하시오. 그림에선 3이 깊이 1이고, 9랑 20이 깊이 2, 15랑 7이 깊이 3이므로 깊이 3을 리턴하면 됨. [내가 작성한 코드] import java.util.LinkedList; import java.util.Queue; class Solution { public int maxDepth(TreeNode root) { Queue q = new LinkedList(); int depth = 0; if (root == null) { return depth; } q.offer(root); while (!q.isEmpty()) { int size = q.size(); while (size-- > 0) { TreeNode node = q.poll(); if (node.left != null) .. 2021. 6. 29.