프로그래머스 괄호 회전하기
·
코딩테스트(코틀린) 기초부터 연습
import java.util.* class Solution { fun solution(s: String): Int { var sq = LinkedList(s.map { it }) as Queue var count = 0 for (i in 1..s.length) { if (checkRight(sq)) count++ val first = sq.poll() sq.offer(first) } println(count) return count } fun checkRight(array: Queue): Boolean { val aq = LinkedList(array.map { it }) as Queue val aqs = Stack() while (aq.isNotEmpty()) { if (aqs.isEmpty()) {..
이진탐색 -효율성을 높이자
·
코딩테스트(코틀린) 기초부터 연습
가능한 배열속에서 조건을 탐색할 때 시간을 줄여줄 수 있는 방법 정렬된 배열에서 사용하자 정렬이 되어있지 않는 상태에서 정렬을 하고 사용하는건 더 복잡해 지는것 같음 차라리 정렬이 안된 상태에서는 filter를 사용하자 1. 정렬된 배열에서 a이상의 수의 갯수 구하기 계속 효율성에서 시간 초과가 나길래 이진탐색이 생각나서 푸니까 되더라.. 이진탐색을 좀 더 자연스럽게 쓸 수 있도록 연습 해야겠다. 10 9 9 9 8 7 6 6 6 5 4 3 2 2 1 이런 식의 배열에서 var start = 0 var end = temArray.size-1 var posi = 0 while (start=score){ start = posi+1 }else{ end = posi-1 } } ---- end가 조건에 맞는 포지..
프로그래머스 괄호변환
·
코딩테스트(코틀린) 기초부터 연습
class Solution { fun solution(p: String): String { var answer = "" answer=solute(p) println(answer) return answer } /**true면 올바른 문자열*/ fun checkIsPerfect(s: String): Boolean { var checkNum = 0 for (i in s) { when (i) { '(' -> { checkNum++ } else -> { checkNum-- } } if (checkNum < 0) return false } return true } fun divideChar(s: String): Pair { var checkNum = 0 var position = 0 for (i in s) { po..
프로그래머스 멀쩡한 사각형
·
코딩테스트(코틀린) 기초부터 연습
완벽하게 다 맞는게 하나도 없네.. 다른 사람 코드를 봄 class Solution { fun gcd(a: Int, b: Int): Long { if (a==0) return b.toLong() return gcd(b%a,a) } fun solution(w: Int, h: Int): Long { var wl = w.toLong() var hl = h.toLong() return wl*hl-wl-hl+gcd(w,h) } } 최대 공약수를 저렇게 구하는 구나 신기함 coding-factory.tistory.com/599 [Algorithm] 유클리드 호제법 - 최대공약수(GCD) 구하기 유클리드 호제법이란? 유클리드 알고리즘(Euclidean algorithm)은 2개의 자연수의 최대공약수를 구하는 알고리즘..
프로그래머스 배달 문제
·
코딩테스트(코틀린) 기초부터 연습
계속 해도 한개가 안맞아서.. 다른 사람의 풀이를 보기러 했다. 일단 나의 풀이 import java.util.* import kotlin.collections.HashSet class Solution { private val hashSet = HashSet() fun solution(N: Int, road: Array, k: Int): Int { val q = LinkedList() as Queue for (i in road.first( k)) { val end = if (i[0] == 1) i[1] else i[0] val a = road(1, end, i[2], mutableListOf(i)) q.offer(a) } // 1을 포함하는 모든 로드중에서 시간조건을 만족하는것 추가 while (q.is..
프로그래머스 이분탐색 입국심사탐색 입국심사
·
코딩테스트(코틀린) 기초부터 연습
이분 탐색이 뭔지 한번 찾아봄 dongdd.tistory.com/50 이분 탐색 알고리즘(Binary Search Algorithm) Binary Search Algorithm Binary Search Algorithm - 오름차순으로 정렬된 리스트에서 특정 값의 위치를 찾는 알고리즘 - 모든 값을 순회해야 하는 일반적인 Search보다 더 빠르다는 장점이 있음 - 중앙값을 찾 dongdd.tistory.com 문제를 내식대로 했는데 계속 타임아웃 되길래 다른사람의 코드를 보기러 했다.. 나는 너무 기계적으로 하나하나 어레이로 확인하고 바꾸는 방식으로 할랫는데 그냥 생각 자체를 달리 해야되네 이분 탐색을 그냥 탐색 범위를 좁혀가면서 탐색하는 방식이라고 생각하고 다양하게 사용해봐야겠다. class Solu..
리워크
'코딩테스트(코틀린) 기초부터 연습' 카테고리의 글 목록 (2 Page)