본문 바로가기

분류 전체보기657

[leetcode][1013] Pairs of Songs With Total Durations Divisible by 60 문제 : https://leetcode.com/problems/pairs-of-songs-with-total-durations-divisible-by-60/ map을 이용했다.[30, 20, 150, 100, 40, 60, 60] 이 입력이 주어졌으면 이를 60으로 나눈 값들의 개수를 map에 저장한다. key = 60으로 나눈 나머지. value = 개수즉, 위 예제에서는 [30, 20, 30, 40, 40, 0, 0]을 key, value형태에 맞춰 넣으면{0, 2}, {20, 1}, {30, 2}, {40, 2}가 map에 들어간다.짝이 될 수 있는 것은 20 - 40. 30 쌍이다. 0 쌍의 개수는 2 * 1 = 2. 20 - 40 쌍의 개수는 1 * 2 = 2.30 쌍의 개수는 2 * 1 = 2.. 2019. 3. 17.
[leetcode][1009] Complement of Base 10 Integer 문제 : https://leetcode.com/problems/complement-of-base-10-integer/ 6 - 0 3 - 1 1 - 1 0 - 1 N을 6이라 했을 때, 2진수는 1110이다. 따라서 보수는 0001이 된다. N을 2로 나눈 나머지 값이 0이면 1을 1이면 0을 해당 자리 수 값에 곱해서 정답에 더한다. N이 0인 경우 보수는 1이므로 이 때는 예외처리했다. 시간 복잡도는 O(logN). + N = 5(101) 일 때, 1의 보수를 구해보자. 1000 - 101 = 011 011 - 1 = 010 2진수의 비트수는 log2(N)으로 구할 수 있다. 예를 들어 N = 5(101) 일 때, log2(5) = 2.32193. 이에 +1을 한 뒤 정수로 바꿔주면 3이 된다. 이제 .. 2019. 3. 17.
[TODO] google sheet API 연동 API 연동(Axios) npm install --save axioscs위 명령어로 axios 설치 // src/api/apiConfig.tsexport const config = { baseUrl: 'https://sheets.googleapis.com/v4/spreadsheets/', sheetId: '{sheetId}', sheetName: '{sheetName}', apiKey: '{apiKey}'} Colored by Color ScriptercsAPI에 사용할 정보를 따로 파일로 만들었다. {} 안에 적은 정보는 mock 데이터이다. // src/api/googleSheetApi.ts import axios, { AxiosPromise } from 'axios'import { TodoRespo.. 2019. 3. 17.
[leetcode][1005] Maximize Sum Of Array After K Negations 문제 : https://leetcode.com/problems/maximize-sum-of-array-after-k-negations/ 배열을 오름차순 정렬한다.음수이고 K가 양수이면 -1을 곱해서 sum을 더한다(K도 1씩 감소). 그러면서 마지막으로 -1을 곱한 수를 따로 저장해둔다.양수이고 K가 양수이면 K를 2로 나눈 나머지를 구한다. 나머지가 1이라면 양수에 -1을 곱해야 하는데 이때, 마지막으로 -1을 곱한 음수와 비교해야 한다.예를 들어, [-8,-5,-3,-5,-2,3] 이고 K가 6일 때, 마지막으로 -1을 곱한 음수는 -2이고. -1을 곱할 양수를 3이라고 하자.총합은 가장 작은 양수인 3을 음수로 만드는 것보다 -2를 양수로 만드는 것이 더 크다.그러므로 -2는 양수로 만들지 않고 3.. 2019. 3. 16.
[TODO] Google spread sheet 살펴보기 지금은 TODO 내용을 컴포넌트에 박아두고 사용하고 있다. 따라서 내용을 바꾸려면 소스코드를 수정해야 한다. 이렇게 안하려면 파일로 서버내에 저장을 하거나 DB를 써야하는데 최근에 구글 스프레드 시트를 이용해서 간단한 일정 관리 프로그램(?)을 만든 포스팅을 봐서 이번에는 스프레드 시트를 이용해보기로 했다. 먼저 간단하게 위와 같이 내용을 채웠다. 이 정보를 Google Spread Sheet를 API로 가져와서 사용하고자 한다. 구글 스프레드 시트 API를 한 번도 쓴적이 없으므로 일단 API 테스트부터 했다. https://console.cloud.google.com/apis로 접속 프로젝트 생성 라이브러리 클릭 google sheet 검색 > 활성화 사용자 인증 정보 > 사용자 인증 정보 만들기 >.. 2019. 3. 15.
[Kotlin] Class<T>에 List<Int> 넣기 fun getTest(clazz: Class): T? { // ...}Colored by Color Scriptercs clazz: Class에 들어갈 파라미터 값으로 List::class.java를 넣는다면 Only classes are allowed on the left hand side of a class literal 라는 에러가 뜬다.이 때, List::class.java 대신 Array::class.java를 넣는다. 그리고 응답값에 .toList() 함수를 써서 결과값을 List로 만든다. getTest(Array::class.java).toList()cs 참고 : https://stackoverflow.com/questions/37016058/getting-class-of-list-with.. 2019. 3. 15.