일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Queue
- 2D Array
- lastIndex
- 코틀린
- dp
- PriorityQueue
- 2020
- 알고리즘
- Java
- hackerrank
- heap
- 동적계획법
- foreach
- dynamic programming
- booleanarray
- programmers
- indices
- Recursion
- contentToString
- solution
- report
- Kotlin
- Developer
- intarray
- Main
- sortedBy
- 프로그래머스
- GREEDY
- Util
- Poll
- Today
- Total
목록알고리즘 스터디_문제풀이 (22)
Code in

DSC 활동을 하면서, 알고리즘 스터디를 통해 문제 풀이를 지속하게 되었다. URL: programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr [카카오 인턴] 키패드 누르기 문제 설명 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입..

** 중간에 Intelli J Kotlin을 업데이트하고 나서 에러가 났었는데 에러 내용: Kotlin: [Internal Error] java.rmi.UnmarshalException: ~~~ Build -> Rebuild Project 하고 나서 에러가 해결됐어요! 프로그래머스 해시부분 위장 문제입니다. IntelliJ에서의 풀이입니다. Hash를 쓰려고 노력했습니다! 실제로 HashMap을 출력하면 다음 처럼 출력됩니다. {-1290360528=1, -1115211921=2} {3135069=3} val clothes: Array = arrayOf( arrayOf("yellow_hat", "headgear"), arrayOf("blue_sunglasses", "eyewear"), arrayOf("g..

프로그래머스 깊이/너비 우선 탐색 여행경로 문제입니다. 프로그래머스에서의 풀이입니다. import java.util.Stack class Solution { val path: MutableList = mutableListOf() val stack: Stack = Stack() fun solution(tickets: Array): Array { tickets.sortWith(compareBy({ it[0] }, { it[1] })) val usedTicket = BooleanArray(tickets.size) { false } for (i in tickets.indices) { if (tickets[i][0] == "ICN") { usedTicket[i] = true stack.push("ICN") sta..

프로그래머스 깊이/너비 우선 탐색 단어 변환 문제입니다. IntelliJ에서의 풀이입니다. import java.util.* val begin = "hit" val target = "cog" val words = arrayOf("hot", "dot", "dog", "lot", "log", "cog") fun solution(begin: String, target: String, words: Array): Int { var answer = 0 if (!words.contains(target)) return 0 val que:Queue = LinkedList() words.forEach { que.add(it) } var curstr: String = begin var quep: String = que.po..

프로그래머스 깊이/너비 우선 탐색 네트워크 문제입니다. IntelliJ에서의 풀이입니다. val n = 3 val computers = arrayOf(intArrayOf(1, 1, 0), intArrayOf(1, 1, 0), intArrayOf(0, 0, 1)) val computers2 = arrayOf(intArrayOf(1, 1, 0), intArrayOf(1, 1, 1), intArrayOf(0, 1, 1)) fun solution(n: Int, computers: Array): Int { var answer = 0 val visited = Array(n) { BooleanArray(n){false} } for (i in 0 until n){ if (!visited[i][i]){ network(c..

프로그래머스 깊이/너비 우선 탐색 타깃 넘버 문제입니다. IntelliJ에서의 풀이입니다. val numbers: IntArray = intArrayOf(1, 1, 1, 1, 1) val target: Int = 3 fun solution(numbers: IntArray, target: Int): Int { val arr: ArrayList = ArrayList() recursion(0, numbers, numbers[0], target, arr) recursion(0, numbers, numbers[0]*-1, target, arr) return arr.size } fun recursion(curIndex: Int, numbers: IntArray, curNum: Int, target: Int, arr..

프로그래머스 동적계획법(Dynamic Programming) N으로 표현 문제입니다. IntelliJ에서의 풀이입니다. import kotlin.math.pow val N = 5 val N2 = 2 val N3 = 4 val number = 12 val number2 = 11 val number3 = 17 val N4 = 1 val number4 = 11111 fun solution(N: Int, number: Int): Int { data class ns(val N: Int, val C: Int) val candidate: MutableSet = mutableSetOf(ns(N, 1)) // N 1번 사용한 상태로 시작 var tmp1: ns var tmp2: ns var tmp3: ns var las..

프로그래머스 탐욕법 섬 연결하기 문제입니다. IntelliJ에서의 풀이입니다. val costs: Array = arrayOf( intArrayOf(0, 1, 5), intArrayOf(0, 3, 2), intArrayOf(0, 4, 3), intArrayOf(2, 5, 3), intArrayOf(1, 4, 1), intArrayOf(3, 4, 10), intArrayOf(1, 2, 2), intArrayOf(4, 5, 4) ) val n = 6 // 11 val costs2: Array = arrayOf( intArrayOf(0, 1, 5), intArrayOf(1, 2, 3), intArrayOf(2, 3, 3), intArrayOf(3, 1, 2), intArrayOf(3, 0, 4) ) val n..

프로그래머스 탐욕법 부분 조이스틱 문제입니다. IntelliJ에서의 풀이입니다. import kotlin.math.abs val name: String = "BBAABB" // 'A': 65 ~ 'Z': 90 // A B C D E F G H I J K L M N O P Q R S T U V W X Y Z // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 12 11 10 9 8 7 6 5 4 3 2 1 fun solution(name: String): Int { var answer = 0 // 알파벳을 바꿀 때 최적화, 이동할 때 최적화 2개로 나누겠습니다. // 알파벳 변경 시의 최적화 var current: Int name.forEach { current = it.toInt() answe..

프로그래머스 탐욕법(Greedy) 큰 수 만들기 문제입니다. IntelliJ에서의 풀이입니다. var k: Int = 4 val number: String = "4177252841" fun solution(number: String, k: Int): String { val str: StringBuilder = StringBuilder(number) // String에 비해서 시간이 대략 1/6으로 감소. var i = 0 var kk = k // k는 val이라서 var로 다시 저장. OOP를 위한 것? var len = str.length - 1 while (i = str[i + 1..