본문 바로가기
  • Adillete

분류 전체보기263

[704BinarySearch] 출처:https://leetcode.com/problems/binary-search/description/ 수도코드function binarySearch(nums, target): left = 0 right = nums.length - 1 while left 문제 & 해결ⓐ 중간값 계산을 어떻게 하는가? left + (right - left) /2를 왜 이렇게 하지?큰 정수를 다룰때 일반적인 중간값 계산left + right 가 정수의 최대값을 초과할수 있기 때문에 오버플로우 방지용으로 left + (right - left) /2 이렇게 쓴다. ⓑ 등호가 left랑 right 비교할때 필요한가?left ⓒ중간 값과 타깃 비교하기[1, 3, 5, 7, 9] 타깃 7일때nums[mid.. 2025. 4. 15.
99클럽 코테 스터디 12일차 TIL + 오늘의 학습 키워드 해시 - 오늘의 학습 키워드 해시- 공부한 내용 본인의 언어로 정리하기HashSet에 저장해서 중복 참여를 방지해야한다게임 유형에 따라서 필요한 추가 인원수를 정해야한다.(임스는 무조건 1을 차지함)필요한 인원이 모이면 게임을 시작하고 currentPlayer 숫자를 초기화한다. - 오늘의 회고 - 어떤 문제가 있었고, 나는 어떤 시도를 했는지① - problem :게임 유형에 따라 필요한 추가 인원수를 생각하지 않고 이름만 저장하려고 해서 문제가 안풀렸다. ②-problem 게임 유형을 정할때 string을 쓰니까 equals로 게임타입을 비교했다.단일 문자 비교보다 비효율적이라고 클로드가 평가했음 - 어떻게 해결했는지① - Solution: 임스를 필두로 해서 추가로 필요한 인원수 추가해야 한다고.. 2025. 4. 15.
[Valid Anagram] 출처:https://leetcode.com/problems/valid-anagram/description/  Given two strings s and t, return true if t is an anagram of s, and false otherwise. Example 1:Input: s = "anagram", t = "nagaram"Output: true 애너그램? 한  단어나 문구의 글자를 재배열해서 다른 뜻을 가진 단어, 문구를 만드는것모든 문자의 종료랑 개수가 일치하는지 확인해야함 접근 방법: 길이 검사를해서 길이가 다르면 false를 반환문자 빈도수 배열: 소문자만 있다는 제약조건을 활용해서 26크기의 배열을 사용 출현 빈도를 계산한다빈도수를 비교해서 두 문자열의 문자 빈도수가 일치하는지를.. 2025. 4. 14.
99클럽 코테 스터디 11일차 TIL + 오늘의 학습 키워드 해시 - 오늘의 학습 키워드 슬라이딩윈도우, 해시- 공부한 내용 본인의 언어로 정리하기dna 에서 반복된 10글자의 시퀀스 찾기 문제 알고리즘 접근법: 해시 테이블, set 자료구조를 활용하는 슬라이딩 윈도우 알고리즘을 사용한다. 문제 접근 방법: 문자열을 처음부터 끝까지 스캔하여 길이가 10인 모든 문자열을 추출한다.각 부분 문자열이 이전에 나온건지 체크, 결과 집합에 추가하낟.중복된 시퀀스만 반환한다. function findRepeatedDNASequences(s); if length(s) - 오늘의 회고   - 어떤 문제가 있었고, 나는 어떤 시도를 했는지인덱스 범위에 벗어나서 에러났음   - 어떻게 해결했는지슬라이딩 윈도우의 개념을 제대로 이해하지 못해서 s.length() -10을 왜 해야하는지 몰.. 2025. 4. 14.
[Invert Binary Tree] 출처: https://leetcode.com/problems/invert-binary-tree/description/ Given the root of a binary tree, invert the tree, and return its root.  이진트리가 나오고 트리를 좌우 바꾸기 ⓐ재귀적 방법: 이걸로 풀었는게 이게 재귀적 방법인건 gpt가 알려줘서야 알았다. 수도코드 function invertTree(root): if root is null: return null // 왼쪽과 오른쪽 자식을 임시 변수에 저장 temp = root.left // 왼쪽과 오른쪽 자식을 교환 root.left = invertTree(root.right) root.. 2025. 4. 12.
99클럽 코테 스터디 10일차 TIL + 오늘의 학습 키워드 해시 - 오늘의 학습 키워드 해시- 공부한 내용 본인의 언어로 정리하기 시간 복잡도 : O(n)해시맵의 모든값을 확인하는데 최악의 경우 O(n)x좌표가 같은 점이 몇개인지 세기y 좌표가 같은점이 몇개인지 세기2개 이상의 점이 있는 좌표값만 고려하여 직선의 수 계산x축에 평행한 직선은 같은 y 좌표를 가진 점을 지난다.y축에 평행한 직선은 같은 x 좌표를 가진 점을 지난다. 수도코드함수 평행선 개수 세기(points[][]): x좌표 맵= 빈 해시맵; x 좌표-> 해당 x 좌표를 가진 점의 개수 y좌표 맵= 빈 해시맵; y 좌표-> 해당 y 좌표를 가진 점의 개수 for(각점 in points) x좌표맵[x]++; y좌표맵[y]++; 직선 개수 =0; for 각 좌.. 2025. 4. 11.