본문 바로가기

개발 (안드로이드 외)20

1961년 8월 10일 외주로 받은 앱에서 생년월일을 1970년 이전으로 할 수 없다고 고쳐달라고 했다.받은 앱 중에 이런 일이 일어난 적이 없어서 아뿔싸, 하고 대충 고쳤는데 내가 사용하는 datetime 라이브러리가 timeInMillis 어? 그래서 계산식에는 실수가 없는데, 진짜 원래 이런 건가? 하고 현재 시간을 밀리초로 바꿔주는 사이트에서 직접 대입해서 해 보았다. Current MillisConvert milliseconds to date-time. Link to a moment.currentmillis.com1960년은 30분 늦게 나왔고, 1970년은 그러지 않았다. 뭐야? 범위를 좁혀가며 찾은 끝에 1961년 8월 10일이라는 날짜가 나왔다.세계시간 기준 1961년 8월 9일, 15시 29분 59초 999.. 2025. 6. 26.
드로이드나이츠 2025를 다녀오다 지난 6월 17일에 드로이드나이츠를 다녀왔다. 작년에는 개발자 컨퍼런스를 갔던가? 기억이 잘 나지 않는데 올해는 안드로이드로 먹고 살기도 하고 트렌드도 또 업데이트하고 싶어서 꼭 가보고 싶었다. 이게 안드로이드 개발자 한정으로 가장 큰 행사 중 하나이기 때문에 언제 열린지는 모르겠으나 표가 순식간에 다 사라졌다. 그럼에도 안드로이드 개발자 톡방에서 다른 분들이 알려주셔서 티켓을 겨우 잡았다가, 좋은 기회로 RevenueCat의 초대권을 받을 수 있었다. In-App Subscriptions Made Easy – RevenueCatThe world’s best apps use RevenueCat to power in-app purchases, manage customer data, and grow rev.. 2025. 6. 24.
코딩 테스트 스터디 - 10 집합 상호배타적 집합교집합이 없는 집합관계.집합 표현하기어떤 집합의 원소가 하나의 집합의 원소라는 것을 알 수 있어야 한다.각 집합 간 다른 집합이라는 것을 알 수 있어야 하고,특정 원소가 어느 집합에 속하는지 알 수 있어야 함.두 집합을 하나로 합칠 수 있어야 함 => 대표 원소를 설정한다면?: 각 집합에서 가장 작은 원소를 대표 원소로 설정한다.집합의 연산find특정 노드의 루트 노드를 확인.필요한 경로 깊어질 경우 연산 늘어남. 경로 압축으로..find연산을 하는 노드가 루트 노드라면 루트 노드 반환.find연산을 하는 노드가 루트 노드가 아니라면, 자신의 부모 노드를 find로 설정거쳐가지 않으면 시간복잡도가 O(1)이 되지는 않음 ...union두 집합을 하나의 잡합으로 합친다.작은 루트 노드 쪽으로.. 2024. 8. 10.
코딩 테스트 스터디 - 09 트리 트리의 개념노드와 간선으로 이루어진 계층적 자료 구조 (부모 자식 관계가 있음)순환 X코테에서는 이진 트리만 알면 된다이진 트리 표현배열로 표현루트 노드 인덱스 1왼쪽 자식 노드 : 부모 노드 인덱스 * 2오른쪽 자식 노드 : 부모 노드 인덱스 * 2 + 1문제점 : 빈 공간이 많다 (버려지는 공간이 많아 효율이 별로), 그러나 구현은 쉽다인접 리스트 (이게 더 좋을 수도?_각 리스트의 인덱스는 부모 노드자식 노드는 부모 노드에 해당되는 인덱스에 추가트리 노드 갯수와 인접 리스트 아이템 갯수가 거의 같음.배열보다 공간 호율은 좋은데, 자식 노드를 찾는데 오래 걸림 (순차 탐색 필요). 그러나 이진 트리는 자식 2개라 크게 단점은 아닌..이진 트리 순회트리의 노드를 모두 방문하는 방법현재 노드를 언제 방문.. 2024. 8. 3.
코딩 테스트 스터디 - 08 해시 해시의 개념배열로 연락처 구현하면 이름 -> 이름 테이블에 선형 탐색 -> 그 위치에 해당되는 전화번호 테이블 참조인덱스에 이름 정보를 넣을 수 있게 하려면.해시 적용하면해시 함수를 사용해서 변환한 값을 인덱스로. -> 키를 해시 함수로 돌리면 인덱스가 나온다.O(N) -> O(1)해시 함수임이의 키를 해시 테이블의 인덱스로 변경.-> 테이블 크기가 N이라면 함수는 [0, N-1) 사이 값을 내야 함. 충돌이 적을수록 (동일한 인덱스) 좋은 해시 함수나눗셈법h(x) = x mod k (k는 소수!) -> 테이블 크기가 커지면 큰 소수가 필요함 (구하기 어렵다)곱셈법h(x) = (((x * A) mod 1) * mx는 키, A는 황금비. m은 최대 버킷의 갯수a / b = a / (a + b): 1.618.. 2024. 7. 27.
코딩 테스트 스터디 - 06, 07 스택과 큐 스택Last In First Out, 나중에 넣은 애가 먼저 나오는 자료 구조.특정 문제에서 스택을 필요로 하는 경우 스택을 선택하면 된다.이 문제가 스택 문제인지 알아야 함 ->가장 최근에 들어온 원소를 알 수 있다.가장 최근에 들어온 원소순으로 나온다. (가장 최근에 들어온 원소에 대해 작업해야 할 때)ADT란?Abstract Data Type.세부 사항 (내부 자료구조, 언어, 공간 크기) 숨기고 필요한 기능만 명시 (연산, 입력, 출력)스택의 ADT구분정의역할연산boolean isFull()데이터 개수가 maxSize면 t, 아니면 f boolean isEmpty()비었으면 t, 아니면 f void push(ItemType item)데이터 푸시 ItemType pop()데이터 팝, 이후 반환상태i.. 2024. 7. 20.