all(408)
-
정렬된 배열에서 특정 수의 개수 구하기 코드 및 해설 (파이썬)
출처: 이것이 취업을 위한 코딩 테스트다 with 파이썬, Q 27, p 367 재귀함수로 구현한 이진 탐색 코드를 참고하여 풀이했습니다. 타겟 값이 있는 인덱스를 result라는 집합에 모두 추가하고 이 집합의 길이를 반환했습니다. 기존의 이진 탐색과 동일하지만, 중간값이 타겟과 같은 경우 현재 중간값을 result 집합에 추가해주었고, 왼쪽과 오른쪽 모두에 타겟이 더 있을 수 있으므로 end를 mid-1로 갱신한 탐색, start를 mid+1로 갱신한 탐색 모두를 진행하도록 했습니다. 타겟 원소가 하나도 없으면 -1을 출력하도록 했으므로 result의 길이가 0보다 크면 len(result)를, 그렇지 않으면 -1을 출력하도록 했습니다. https://codlingual.tistory.com/189 ..
2021.06.28 -
이진 탐색
이진 탐색의 시간 복잡도: O(logN) 정렬되지 않은 길이 N의 리스트에서 M개의 값을 이진 탐색으로 찾을 때 시간 복잡도: O((M+N)*logN) 길이 N의 리스트 정렬하기: O(N*logN) 정렬된 길이 N의 리스트에서 M번 이진 탐색하기: O(M*longN) 1. 재귀 함수로 구현한 이진 탐색 코드 # 이진 탐색 소스코드 구현(재귀 함수) def binary_search(array, target, start, end): if start > end: return None mid = (start + end) // 2 # 찾은 경우 중간접 인덱스 반환 if array[mid] == target: return mid # 중간점의 값보다 찾고자 하는 값이 작은 경우 왼쪽 확인 elif array[mid]..
2021.06.28 -
리트코드 Recover Binary Search Tree 코드 및 해설 (파이썬)
https://leetcode.com/problems/recover-binary-search-tree/ Recover Binary Search Tree - 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 올바른 BST라면 inorder 순회를 했을 때 값들이 오름차순으로 정렬되어야 한다는 사실을 이용해 풀이했습니다. inorder 순회를 하면서 result에 값을 저장하고, 오름차순 정렬이 되지 않는 부분들의 노드를 발견하면 swap에 추가적으로 저장했습니다. 순..
2021.06.27 -
React Native 화면 크기별로 폰트 사이즈 변경하기
우선 여기저기 요긴하게 쓰이는 화면 크기 알아내는 법 import { Dimensions } from 'react-native'; //화면의 높이 Dimensions.get('window').height //화면의 너비 Dimensions.get('window').width 화면 크기에 따른 폰트 사이즈 변경하기 const styles = StyleSheet.create({ ... sectionSubtitle: { // 화면 너비가 500보다 크면 22, 아니면 18 fontSize: Dimensions.get('window').width > 500? 22 : 18, textAlign: 'center', fontFamily: 'Bazzi', }, ... 비율대로 크기를 조정하려면 화면 너비를 24로 나눈..
2021.06.25 -
React Native 어플 안에서 소리 재생하기
만들고 있는 어플 안에 개구리 그림이 있는데 기능이랑 상관없이 그냥 개구리를 누르면 개구리 소리가 나면 좋겠다고 생각했다 귀여우니까~ 그래서 주기능과 아무 상관없지만 소리 재생하는 삽질을 시작했다 ... 1. 재생하고 싶은 파일을 다운로드한다 난 mp3 파일이었는데 어느 확장자들이 가능한지는 모르겠다 폰트와 비슷하게 assets 폴더 안에 넣어줬다 2. 어플 디렉토리로 이동해서 npm i expo-av 라이브러리 설치해주기 3. App.js에 다음과 같이 코드 추가해주기 import { Audio } from 'expo-av'; export default class extends React.Component { ... async playSound() { const sound = new Audio.Soun..
2021.06.25 -
리트코드 Populating Next Right Pointers in Each Node 코드 및 해설 (파이썬)
https://leetcode.com/problems/populating-next-right-pointers-in-each-node/description/ Populating Next Right Pointers in Each Node - 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 BFS를 이용해 풀이했습니다. 먼저 root와 root의 depth인 1을 각각 다른 queue에 넣어주고 queue가 빌 때까지 다음을 반복합니다. 각 queue의 맨 첫번째 요소..
2021.06.23