목록전체 글 (122)
기록
시간초과 코드 fun main() { val s = Solution() //println(s.solution(intArrayOf(1, 2, 1, 3, 1, 4, 1, 2))) println(s.solution(intArrayOf(1, 2, 3, 1, 4))) } class Solution { fun solution(topping: IntArray): Int { var answer: Int = 0 for(point in 0..topping.size-1) { val leftTopping = topping.copyOfRange(0, point + 1) val rightTopping = topping.copyOfRange(point + 1, topping.size) val leftToppingCount = le..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b4QHiH/btsbI2kU2Bx/suvcYR8D9Kf5bDCXcJmKR0/img.png)
@Test fun add() { val name = "홍길동" val number = "010-1111-1234" val expect = User(name, number) val actual = phoneBookImpl.add(name, number) assertEquals(expect, actual) } User 리스트에 새로운 User를 추가해주는 메소드를 테스트 하려니, 원하는 결과가 나오지 않았다. 둘의 객체 값의 주소가 다르다는 메시지이다. 뭐가 문제일까? class User (val name: String, val number: String) 일단 답을 먼저 말하면, 바로 User 클래스에서 equals 메소드를 오버라이드 하지 않았기 때문이다. data class User (val name..
import java.util.LinkedList import java.util.Queue fun main() { val graph = arrayOf( intArrayOf(), intArrayOf(2,3,8), intArrayOf(1,7), intArrayOf(1,4,5), intArrayOf(3,5), intArrayOf(3,4), intArrayOf(7), intArrayOf(2,6,8), intArrayOf(1,7) ) val visited = BooleanArray(graph.size){ false } bfs(graph, 1, visited) } fun bfs(graph: Array, node: Int, visited: BooleanArray) { val queue: Queue = LinkedLi..
fun main() { val graph = arrayOf( intArrayOf(), intArrayOf(2,3,8), intArrayOf(1,7), intArrayOf(1,4,5), intArrayOf(3,5), intArrayOf(3,4), intArrayOf(7), intArrayOf(2,6,8), intArrayOf(1,7) ) var visited = BooleanArray(9){ false } dfs(graph, 1, visited) } fun dfs(graph: Array, v: Int, visited: BooleanArray) { visited[v] = true print("$v ") for(node in graph[v]) { if(!visited[node]) { dfs(graph, nod..
fun main() { var n = readLine()!!.toInt() var str = "" while(n > 0) { str = (n % 2).toString() + str n /= 2 } println(str) }
fun main() { val arr = intArrayOf(2,5,3,1,6,7,0,4,8,9) for(i in 0 until arr.size - 1){ for(j in 1 until arr.size -i) { if(arr[j-1] > arr[j]) { val temp = arr[j-1] arr[j-1] = arr[j] arr[j] = temp } } } println(arr.contentToString()) }
fun main() { val arr = intArrayOf(2,5,3,1,6,7,0,4,8,9) for(i in 0 until arr.size) { var minIndex = i for(j in i+1 until arr.size) { if(arr[minIndex] > arr[j]) { minIndex = j } } val tmp = arr[i] arr[i] = arr[minIndex] arr[minIndex] = tmp } println(arr.contentToString()) } 가장 작은 데이터를 선택해 맨 앞의 데이터와 바꾸고, 그 다음 작은 데이터를 선택해 앞에서 두번째 데이터와 바꾸는 과정을 반복 현재 데이터의 상태와 상관 없이 무조건 모든 원소를 비교하고 위치를 바꾼다.
맨 왼쪽의 원소는 이미 정렬되어 있다고 가정하고, 두번째 원소부터 시작해서 왼쪽으로 순차적으로 현재 원소보다 큰 원소가 있다면 교체를 해주고, 또 다음 반복에서 그 왼쪽의 원소와 비교하여 또 큰 원소가 있다면 교체를 해주고, 이 작업을 반복하다가 마침내 현재 원소의 왼쪽 원소가 현재 원소보다 작은 경우를 만날 시에 브레이크로 중단하는 정렬 방식입니다. fun main() { val arr = intArrayOf(2,5,3,1,6,7,0,4,8,9) for(i in 1 until arr.size) { for(j in i downTo 1) { if(arr[j] < arr[j-1]) { val temp = arr[j] arr[j] = arr[j-1] arr[j-1] = temp } else break } } ..