본문 바로가기

전체 글

(57)
android no credentials available google sign in 위의 원인이 일어날 수 있는 가능성은 여러가지가 있다. 나의 경우는 디지털 지문(SHA-1)을 제대로 입력하지 않아서 안됐다. 문제가 발생할 수 있는 다양한 원인들1. 최신 라이브러리 버전을 사용하지 않아서.https://developer.android.com/identity/sign-in/credential-manager-siwg 하잉퍼링크로 latest version이 있는데 저기가서 확인해보자.  2.잘못된 cliendID를 쓰는 경우스택오버플로우나 챗지피티한테 이 에러에 관해서 물어보면 거 무조건 이 부분을 체크해보라고 할거다.setServerClientID 메소드에 안드로이드의 클라이언트ID를 넣으면 안된다. 잘 체크해보자 // 빌더 패턴을 사용해서 구글 로그인 객체를 만들어낸다. ..
[코딩테스트] 등차수열의 특정한 항만 더하기 // https://school.programmers.co.kr/learn/courses/30/lessons/181931class Quiz17 { fun solution(a: Int, d: Int, included: BooleanArray): Int { var answer: Int = 0 var currentNum = a included.forEach { it -> if(it){ answer += currentNum } currentNum += d } return answer } fun solution2(a: Int, d: Int, inclu..
[코딩테스트] 배열 뒤집기 package AlgorithsmExample// https://school.programmers.co.kr/learn/courses/30/lessons/120821class Quiz16 { fun solution(num_list: IntArray): IntArray { var answer: IntArray = IntArray(num_list.size) var idx = num_list.size -1 for(i in 0 until num_list.size) { answer[i] = num_list[idx] idx-- } return answer } // 더 나은 방법으로 reversedA..
[프로그래머스] 이어 붙인 수 package AlgorithsmExample// https://school.programmers.co.kr/learn/courses/30/lessons/181928?language=kotlin// jointToString() 함수를 배우는 좋은 계기가 됐다. 리스트안의 모든 값들을 이어 붙여서 문자열로 만들어주는 역할을 하는 메소드다.class Quiz15 { fun solution(num_list: IntArray): Int { var answer: Int = 0 // 홀수 var oddSumList = mutableListOf() // 짝수 var evenSumList = mutableListOf() num_list.f..
코루틴의 다양한 상태값들 코루틴에는 다양한 상태값들이 존재한다. 아래 그림을 참고하자. 각 상태를 코드로 확인해보자.import kotlinx.coroutines.*fun main() = runBlocking { val job : Job = launch { delay(1000L) } // toString 메소드로 job의 상태값을 확인하면 JobSupport 객체에서 디버깅 용도로 만드는 문자열(toDebugString())을 사용하는 것이라서 직접 코드에서 사용하기는 어렵다. println(job) printJobState(job)}fun printJobState(job: Job) { println( "Job State \n" + "isActive >> ${..
코루틴 취소 방법 코루틴 취소가 필요한 이유더 이상 사용하지 않을 코루틴을 취소하지 않으면 코루틴이 스레드를 계속해서 사용하기 때문에 애플리케이션의 성능 저하로 이어진다.ex) 동영상 편집 어플 같은것들을 보면 여러 영상을 짜집기해서 긴 영상으로 만드는 작업이 있는데 이런 작업을 요청하고 필요가 없어져도 계속 켜두면 당연 성능에 좋지 않을 것이다.cancel() 함수를 사용하면 코루틴에게 취소 요청을 할 수 있다. (코루틴이 바로 취소되는게 아니다.) 취소 확인용 플래그의 값을 '취소 요청됨' 으로 바꾸는 역할을 해준다. 이후 미래에 취소가 확인될때 코루틴이 취소된다.아래의 예제의 결과를 살펴보면 금방 이해할 수 있을 것이다.import kotlinx.coroutines.*fun main() = runBlocking { ..
[프로그래머스] 잘라서 배열로 저장하기 package AlgorithsmExample//https://school.programmers.co.kr/learn/courses/30/lessons/120913class Quiz9 { fun solution(my_str: String, n: Int): Array { var length = 0 length = my_str.length/n if(my_str.length % n > 0) { length++ } var answer: Array = Array(length){""} var idx = 0 for(i in 0 until my_str.length) { answer[idx..
[프로그래머스] 머쓱이보다 키 큰 사람 https://school.programmers.co.kr/learn/courses/30/lessons/120585 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr class Solution { fun solution(array: IntArray, height: Int): Int { var answer: Int = 0 for(item in array) { if(height