일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 동적계획법
- hackerrank
- Developer
- Java
- Recursion
- contentToString
- foreach
- intarray
- 프로그래머스
- booleanarray
- report
- 코틀린
- 알고리즘
- heap
- indices
- Main
- PriorityQueue
- dynamic programming
- Kotlin
- dp
- GREEDY
- Poll
- lastIndex
- sortedBy
- solution
- Queue
- Util
- 2D Array
- programmers
- 2020
- Today
- Total
목록분류 전체보기 (37)
Code in
프로그래머스 큐, 다리를 지나는 트럭 문제입니다. 큐는 add 하는 곳과 poll(remove)하는 곳이 다르다는 것을 유의해야 했습니다... IntelliJ에서의 문제 풀이입니다. import java.util.Queue import java.util.LinkedList // Kotlin은 JVM: Java Virtual Machine 을 사용하기 때문에 Java의 Queue를 import합니다. var bridge_length:Int = 2 var weight: Int = 10 var truck_weights: IntArray = intArrayOf(7, 4, 5, 6) fun solution(bridge_length: Int, weight: Int, truck_weights: IntArray): I..
프로그래머스 큐 기능개발 문제입니다. IntelliJ에서의 문제 풀이입니다. var progresses: IntArray = intArrayOf(93,30,55) // 진도가 변하므로 var 사용 val speeds: IntArray = intArrayOf(1, 30, 5) // 속도가 일정하므로 val 사용 fun solution(progresses: IntArray, speeds: IntArray): IntArray { var answer = intArrayOf() // int Array 형식으로 초기화 var cnt = 100 // 가장 오래 걸리더라도 100일 이하 var front = 0 // 큐에서 Data가 사라지는 방향 var tmp: Int // Int 형식으로 선언 while (cnt ..
프로그래머스 정렬 부분 H-Index 문제이다. IntelliJ에서의 풀이이다. var citations: IntArray = intArrayOf(3, 0, 6, 1, 5) fun solution(citations: IntArray): Int { var answer = 0 val n = citations.size // 발표한 논문 n // val은 value, var은 variable이다. // val은 값 할당 후, 값을 변경할 수 없다. var는 변경 가능하다. citations.sortDescending() // 6, 5, 3, 1, 0 // 인용된 횟수 큰 순서=내림차 순 for(i in 0 until n) // i는 0 1 2 3 4 Index가 인용된 편 수 h 이다. if (citations..
프로그래머스의 코딩테스트 연습 정렬 부분 가장 큰 수 문제이다. IntelliJ에서의 문제 풀이이다. var numbers: IntArray = intArrayOf(3, 30, 34, 5, 9) fun solution(numbers: IntArray): String { var answer = "" var tmparr = arrayOf() numbers.forEach{ tmparr += it.toString() // numbers를 String 배열로 바꾼다. } tmparr.sortWith(Comparator{a, b -> when{ a.length == b.length -> b.compareTo(a) else -> (b+a).compareTo(a+b) } }) // sortWith는 Comparator..
프로그래머스의 코딩테스트 연습 문제 정렬 부분 K번째 수 문제입니다. IntelliJ IDEA에서 실행한 문제 풀이입니다. var ans = intArrayOf() // 웹 IDE에서 IntelliJ로 옮기면서 보다 차이가 적어지도록 하기 위해 생성합니다. var inputarray: IntArray = intArrayOf(1, 5, 2, 6, 3, 7, 4) var in1: IntArray = intArrayOf(2, 5, 3) var in2: IntArray = intArrayOf(4, 4, 1) var in3: IntArray = intArrayOf(1, 7, 3) // 1차원 Int 배열 생성하기 var commands: Array = arrayOf(in1, in2, in3) // 2차원 배열 c..
스택, 큐, 힙 정적인 메모리: 컴파일할 때 메모리를 할당 받고 시작한다. ex) 기본형 자료형 동적인 메모리: 실행하는 런 타임에 메모리를 할당 받는다. ex) 참조형 자료형, malloc, calloc 스택 Stack LIFO, Last in First out으로 후입선출의 구조이다. 백 트래킹, 인터넷 사용기록 보관 등이 스택을 사용하는 LIFO 구조를 갖고 있다. 한쪽(TOP)에서만 데이터를 넣고 꺼낼 수 있다. * 스택오버플로우: 정해진 크기의 스택에 계속해서 PUSH하다 스택의 크기를 초과하여 더이상 데이터를 추가할 수 없게 된 것으로, 흔히 스택을 사용하는 재귀함수 호출 시 많이 경험한다. 컴퓨터의 사칙 연산 계산에서 후위 표기법을 사용할 때도 스택을 활용한다. PUSH: 스택의 TOP에 데..
Sorting 정렬 알고리즘 : N개의 숫자를 입력받아서 오름차순ASC 혹은 내림차순DESC으로 정렬하여 출력하는 알고리즘이다. * 오름차순: ASC, Ascending **내림차순: DESC, Descending 간략하게는, Swap을 주로 사용하는 선택 정렬과 버블 정렬, 중간에 데이터를 삽입하여 그 뒤의 데이터들의 위치를 바꾸는 삽입 정렬과 쉘 정렬 분할 정복을 사용하는 합병 정렬과 퀵 정렬, Tim Sort, Intro Sort 버킷을 사용하는 기수 정렬과 버킷 정렬, Counting Sort 최대 힙을 사용하는 힙 정렬 등이 있다. *임의로 크게 나누었을 때이므로 세부적으로는 차이가 있다. 이 때, 입력 데이터들 중 같은 값들이 존재할 때 정렬 과정에서 이들의 위치가 바뀌지 않을 경우 안정 정렬..