본문 바로가기

코딩테스트20

[Leetcode/C#] 199. Binary Tree Right Side View 문제링크  https://leetcode.com/problems/binary-tree-right-side-view/?envType=study-plan-v2&envId=top-interview-150  199. Binary Tree Right Side View 637. Average of Levels in Binary Tree 랑 비슷한 개념이라 금방 풀 수 있었다. 637번 문제와 동일한 개념으로 풀면 되는데이 문제는 right side view 에서 봤을때 보이는 node 를 return 하면 되는 문제라서queue.Count 를 한 후 반복문 안에서 dequeue 해주고 마지막 요소일때 그 node 의 값을 result List 에 Add 해줬다.  기억하면 좋을 것 public class Solut.. 2024. 8. 17.
[Leetcode/C#] 637. Average of Levels in Binary Tree 문제링크 https://leetcode.com/problems/average-of-levels-in-binary-tree/?envType=study-plan-v2&envId=top-interview-150 637. Average of Levels in Binary Tree  기억하면 좋을 것  public class Solution { Queue queue = new Queue(); List result = new List(); int sumInSameLevel = 0; int cntInSameLevel = 0; public IList AverageOfLevels(TreeNode root) { queue.Enqueue(root); traverse(.. 2024. 8. 17.
[LeetCode/C#] 374. Guess Number Higher or Lower 문제링크  374. Guess Number Higher or Lower  https://leetcode.com/problems/guess-number-higher-or-lower/description/  기억하면 좋을 것 1. 중간값을 구할때 var mid = left - (right - left) / 2 를 하면 오버플로우를 피할 수 있다. 물론 중간값을 left + right / 2 로 구할 수 있다. 그러나 컴퓨터가 32비트 정수를 사용한다면 표현할 수 있는 가장 큰 수는 2^32 로 left + right 했을 때 그 값을 초과할 수 있기때문에 중간값을 구할때 저 식을 많이 쓴다고한다.  2. 32비트 정수에서 첫번째 비트는 부호비트. 나머지 31비트는 수를 표현하는데 사용된다. 따라서 부호있는 .. 2024. 5. 4.
[백준] Javascript의 shift() 사용했을때 시간초과 관계 리스트를 만들때 input에서 shift()를 해서 받아와 만들었는데 시간초과가 났다.. // 연결 관계리스트 만들기 for (let i = 0; i < M; i++) { let [x, y] = input.shift().split(" ").map(Number); graph[x].push(y); graph[y].push(x); } 검색해보니 shift()가 많이 느리다고하네 .. 배열의 끝이 아닌 임의의 위치에서 항목을 삭제하는 것은 큰 대가를 치뤄야 하기 때문입니다. 그래서 index를 지정해서 설정해줬다. // 연결 관계리스트 만들기 for (let i = 0; i < M; i++) { let [x, y] = input[i].split(" ").map(Number); graph[x].push(y).. 2023. 10. 19.