본문 바로가기

Kotlin

(3)
[알고리즘] 프로그래머스 - 네트워크 DFS를 풀었다면, 당연히 BFS도 풀어주는게 알고리즘의 도리이다. 이번에 볼 내용은 프로그래머스의 네트워크이다. 문제를 먼저 보겠다. 문제 문제설명 2차원 배열로 주어진 computers에서 서로 연결된 네트워크의 개수를 구하는 것이다. 이때 제한사항 중에서 아래와 같은 사항을 알 수 있다. i번 컴퓨터와 j번 컴퓨터가 연결되어 있으면 computers[i][j]를 1로 표현한다는 것은, 모든 배열을 다 탐색할 필요가 없고, n^2 / 2 + n 만큼 탐색을 진행하면 된다. O(n^2)로 O(n^2/2)로 시간 복잡도를 줄일 수 있다. 노드 1개 자체만으로도 네트워크가 될 수 있다. 접근방법 BFS로 진행했다. 이때 1노드와 2노드가 연결되었다고 할 때 탐색을할 때 1노드에서만 진행하고 2노드는 따로 ..
[알고리즘] 프로그래머스 - 타겟넘버 이번주에 코딩테스트가 예정되어 있다. 그래서 예전의 감각을 되살리려고 DFS, BFS 문제를 연습중이다. 오늘 포스팅은 그중에서도 프로그래머스의 '코딩테스트 고득점 Kit' 중 DFS/BFS 색션에 있는 타겟넘버를 정리해 보았다. 참고로 주로 사용하는 언어가 Kotlin 이기에, 당연히 Kotlin으로 문제풀이를 진행했다. 문제 문제 설명 배열로 주어진 numbers에서 +,- 의 경우의 수를 모두 구해서 마지막 결과값이 target과 동일한 가짓수를 구하는 경우이다. 접근방법 DFS를 이용하여 해결했다. DFS를 이용한 사유는 아래와 같다. 주어지는 숫자 개수가 20개 이하여서 재귀로 돌려도 충분한 시간복잡도가 나온다. BFS로 해도 상관없지만, DFS를 더 좋아한다. 정답코드 class Solutio..
[안드로이드] Okhttp3 사용 기본예제 (kotlin) Java에서 kotlin으로 넘어가고 있다. http connection을 위해 자주 사용하는 것 중 하나인 okhttp3 사용예제를 만들어보자. okhttp3가 어떤 라이브러리인지 궁금하면 아래 링크로 들어가자 okhttp3 깃허브 링크 1. 라이브러리 추가 app수준의 Gradle에 들어가서 라이브러리를 추가해준다. implementation 'com.squareup.okhttp3:okhttp:4.9.0' //포스팅 당시 4.9.0 버전 기준 2. permission 추가 Manifest에 들어가서 INTERNET사용을 위한 permission을 application 태그 밖에 작성해준다. 3. okhttp 선언 후 정보 불러오기 okhttp3를 사용한다면 android일 것이고 디자인 패턴에 따라서..