kotlin
-
[Programmers] Lv2. ์ฐ์ ๋ถ๋ถ ์์ด(kotlin)SW Test/Programmers 2022. 10. 22. 18:20
๋ฌธ์ ์์ ํ์ด ์ํ์ ๋ชจ์์ ๊ตณ์ด ์๊ฐํ ํ์ ์์ด ํ๋์ ๋ฆฌ์คํธ๋ฅผ ์ฐ์์ผ๋ก ๋ถ์ธ ํ ์ฒ์ ๋ฆฌ์คํธ์ ๊ฐฏ์๋งํผ๋ง ๋ถ๋ถ ์์ด์ ๋ณด์๋ฉด ๋ฉ๋๋ค. class Solution { fun solution(elements: IntArray): Int { var answer = mutableSetOf() val list = elements.toList() + elements.toList() for(i in 1..elements.size){ for(j in 0..(list.size -i)){ answer.add(list.subList(j, j+i).sum()) } } return answer.size } } ์ฐธ๊ณ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ธ kotlin์ ํน์ฑ์ ๋ง๊ฒ ํจ์๋ฅผ ๋ง์ด ์ตํ์ ๐ฝ mutableSetOf๋ Ja..
-
[Programmers] Lv2. ํผ๋ก๋(kotlin)SW Test/Programmers 2022. 10. 22. 17:07
๋ฌธ์ ์์ ํ์ด ๋ฐฑํธ๋ํน ๊ธฐ๋ฒ์ ์ด์ฉํ๋ฉด ์์ฝ๊ฒ ํ ์ ์์ต๋๋ค. import kotlin.math.* class Solution { var answer = -1 fun getResult(k: Int, dungeons: Array, check: List){ var flag = false for(i in 0 until check.size){ if(!check[i] && k >= dungeons[i][0]){ flag = true getResult(k-dungeons[i][1], dungeons, check.toMutableList().apply{ this[i] = true }) } } if(!flag){ answer = max(answer, check.count{it}) } } fun solution(k:..
-
[Programmers] Lv2. ์ฃผ์ฐจ ์๊ธ ๊ณ์ฐ(kotlin)SW Test/Programmers 2022. 10. 22. 17:02
๋ฌธ์ ์์ ํ์ด ๋ ๊ฐ์ map์ ํตํด ํ๋๋ ์ /์ถ์ฐจ ๊ธฐ๋ก๊ณผ ํ๋๋ ํด๋น ์ฐจ๋์ ์ ์ฒด ์๊ฐ์ ๊ธฐ๋กํ์๋ฉด ๋ฉ๋๋ค. import kotlin.math.* class Solution { fun solution(fees: IntArray, records: Array): IntArray { val score = mutableMapOf() var map = mutableMapOf() records.forEach{ record -> val rl = record.split(" ") val time = rl.get(0).split(":").let{ it.first().toInt()* 60 + it.last().toInt()} val num = rl.get(1) if(map.contains(num)){ score.put..
-
[Programmers] Lv2.k์ง์์์ ์์ ๊ฐ์ ๊ตฌํ๊ธฐ(kotlin)SW Test/Programmers 2022. 10. 12. 17:57
๋ฌธ์ ์์ ํ์ด ์์ ์ฐพ๊ธฐ ์๊ณ ๋ฆฌ์ฆ์ ์ ๋ง ๋ง์ด ์์ผ๋ ์๋ตํ๊ฒ ์ต๋๋ค. ํด๋น ๋ฌธ์ ์์๋ k์ง์๋ก ๋ณ๊ฒฝ ์์ Int์ ํฌ๊ธฐ ์๋ฆฌ์๋ณด๋ค๋ ์ปค์ง๊ธฐ ๋๋ฌธ์ ์์ ํ๋ณํจ์์์๋ Long์ผ๋ก ์ ์ธํด์ผ ํฉ๋๋ค. StringBuilder์ ํ๋์ฉ ๋๋ ์ ์ถ๊ฐํ์ง๋ง, toString(k) ๋ผ๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ๋ก ๊ตฌํ ์ ์๋ค๊ณ ํฉ๋๋ค. ๐ ์ญ์ ๋ ๋ค์ ํ๋ฒ ํจ์๋ฅผ ๋ง์ด ์์์ผ ๋ชธ์ด ๊ณ ์ํ์ง ์๋๋ค๋ ๊ฒ์ ๊นจ๋ซ๊ฒ ๋๋ค์ . import kotlin.math.* class Solution { fun isPrime(n: Long): Boolean{ if(n == 1L) return false (2..sqrt(n.toDouble()).toLong()).forEach{ if(n%it == 0L) return false ..
-
[Programmers] Lv2.ํ๋ฆฐํฐ(kotlin)SW Test/Programmers 2022. 9. 30. 18:38
๋ฌธ์ ์์ ํ์ด ๋ฌธ์๋ฅผ ๋นผ๊ณ ์ค์ํ ๋ฌธ์๊ฐ ์๋ ๊ฒฝ์ฐ ๋ค์ ๋ค๋ก ์ถ๊ฐํ๋ ๋ฐฉ์์ ์ ํ์ ์ธ ํ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค. kotlin์๋ ๋ด์ฅ๋ ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์๊ธฐ ๋๋ฌธ์ java์ LinkedList ๋ฅผ ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค. import java.util.* class Solution { fun solution(priorities: IntArray, location: Int): Int { var answer = 0 val plist = priorities.sortedByDescending{it} var pidx = 0 val q = LinkedList().apply{ priorities.forEachIndexed { index, i -> add(Pair(index, i))} } while(q.isNotEmpty()..
-
[Programmers] Lv2. ์์ฅ(kotlin)SW Test/Programmers 2022. 9. 25. 21:46
๋ฌธ์ ์์ ํ์ด class Solution { fun solution(clothes: Array): Int = clothes.groupBy { it.last() } // ์์์ ์ข ๋ฅ ๊ทธ๋ฃนํ .mapValues { it.value.map { it.first() }} // ์์์ ์ด๋ฆ๋ง ๊ฐ์ง๋๋ก ๋ณํ .map { it.value } // ํค ๊ฐ์ผ๋ก๋ง ๊ตฌ์ฑ๋ ๋ฆฌ์คํธ ?.let { it.fold(1){acc, list -> acc*(list.size + 1) } - 1} // ๊ฐ ๋ฆฌ์คํธ์ ๊ฐฏ์ + 1 ์ ๊ณฑํ ํ - 1 } ์ฐธ๊ณ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ธ kotlin์ ํน์ฑ์ ๋ง๊ฒ ํจ์๋ฅผ ๋ง์ด ์ตํ์ ๐ฝ https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collectio..
-
[Programmers] Lv2. ํํ(kotlin)SW Test/Programmers 2022. 9. 24. 21:13
๋ฌธ์ ์์ ํ์ด ์ ๋ฌธ์ ๋ ๋ฌธ์์ด๋ก ์ฃผ์ด์ง๋ ์ ๋ ฅ๊ฐ์ 2์ค ๋ฆฌ์คํธ๋ก๋ง ๋ณ๊ฒฝํ๋ฉด ์ฌ์ด ๋ฌธ์ ์ ๋๋ค. ์ ๋ split์ ํ๋ ๊ธฐ์ค์ "},"๋ก ์ก์๊ณ ์ดํ ๊ฐ ๋ฌธ์์ด์์ '{'์ '}'๋ ๋น ๊ณต๊ฐ์ผ๋ก ๋ณ๊ฒฝํ์์ต๋๋ค. ํํ์ ๋ง๋ค๊ธฐ ์ํด์๋ ๋ฆฌ์คํธ ๋ด ๋ฆฌ์คํธ ์์ ๊ฐฏ์๊ฐ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ์ ์์ผ์ผ ์ฌ๋ฐ๋ฅธ ๋ต์ ๊ตฌํ ์ ์์ต๋๋ค. ์ดํ ์ค๋ณต์ด ๋์ง ์๋๋ก answer ๋ฆฌ์คํธ์ ๋ํด์ฃผ๋ฉด ๋ฉ๋๋ค. ์ด๋ฅผ ํ๋์ฉ ํด๋ ๋์ง๋ง fold ํจ์์ set์ ํน์ง์ ์ฌ์ฉํ๋ฉด ์ฝ๊ฒ ํ ์ ์์ต๋๋ค. class Solution { fun solution(s: String): IntArray { var answer = mutableListOf() val list = s.split("},").map{ it.replace('{',' ')..
-
[Programmers] Lv2. ๊ดํธ ํ์ ํ๊ธฐ(kotlin)SW Test/Programmers 2022. 9. 23. 17:36
๋ฌธ์ ์์ ํ์ด Stack์ ์ด์ฉํ ๋ํ์ ์ธ ๋ฌธ์ ์ธ ๊ดํธ ์ฐพ๊ธฐ์ ๋๋ค. Stack ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ kotlin์ ์๊ธฐ์ Java Util ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํฌํจ๋ Stack์ ์ด์ฉํ์๋ฉด ๋ฉ๋๋ค. import java.util.* class Solution { fun solution(s: String): Int { var answer: Int = 0 var tempStr = s first@ (1..s.length).forEach{ tempStr = tempStr.substring(1, tempStr.length) + tempStr.first() val stack = Stack() for(ch in tempStr){ if(stack.size == 0){ stack.add(ch) }else{ if(ch in arrayO..