Algorithm
-
[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..
-
[Programmers] Lv2. ์์๋์งํ(kotlin)SW Test/Programmers 2022. 9. 20. 01:13
๋ฌธ์ ์์ ํ์ด (1,2), (3,4), (5,6) .. ์ด๋ ๊ฒ ๊ฐ์ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ์ฌ์ผ ํ๋ค. ์ด๋ฅผ ์ํด์๋ ๋จ์ํ 2๋ก ๋๋๋ฉด ๊ฐ์ ๊ฐ์ด ์๋์ค๊ธฐ์ 2๋ก ๋๋ ๋ชซ๊ณผ 2๋ก ๋๋ ๋๋จธ์ง๋ฅผ ๋ํ๋ฉด ๊ฐ์ ๊ฐ์ ๊ฐ๋ฆฌํค๊ฒ ๋๋ค. (1,1), (2,2), (3,3) ... ๋ฐ๋ผ์ ํด๋น ๋ ๊ฐ์ด ๊ฐ์ผ๋ฉด ์ข ๋ฃ์ํค๋ฉด ๋ฉ๋๋ค. class Solution { fun solution(n: Int, a: Int, b: Int): Int { var answer = 0 var first = if(a>b) b else a var second = if(a>b) a else b while(second - first > 0){ first = first/2 + first%2 second = second/2 + second%2 answer++..
-
[Programmers] Lv2.์นดํซ(kotlin)SW Test/Programmers 2022. 9. 14. 02:17
๋ฌธ์ ์์ ํ์ด ์์ ํ์ ๋ฐฉ์์ผ๋ก yellow ๊ธธ์ด์ ๋ฃจํธ๋งํผ๋ง ๋ฐ๋ณตํด์ ๊ฐ๋ก, ์ธ๋ก ๊ธธ์ด๋ฅผ ๊ตฌํฉ๋๋ค. ํด๋น ๊ธธ์ด์ ๊ฐ๊ฐ +2์ฉ ๋ํ ํ ์ฌ๊ฐํ์ ํฌ๊ธฐ๋ฅผ ๊ตฌํ๊ณ brown๊ณผ yellow์ ๊ฐฏ์์ ํฉ๊ณผ ๊ฐ์์ง ํ์ธํ๋ฉด ๋ฉ๋๋ค. import kotlin.math.* class Solution { fun solution(brown: Int, yellow: Int): IntArray { (1..sqrt(yellow.toDouble()).toInt()).forEach{ if(yellow % it == 0){ val x = it + 2 val y = yellow / it + 2 if(x*y == brown + yellow){ return intArrayOf(y, x) } } } return intArrayOf() ..
-
[Programmers] Lv2.์ด์ง ๋ณํ ๋ฐ๋ณตํ๊ธฐ(kotlin)SW Test/Programmers 2022. 9. 14. 01:56
๋ฌธ์ ์์ ํ์ด ๋ฌธ์์ด์ด "1"์ด ๋๊ธฐ์ ๊น์ง ๋ฐ๋ณตํด์ ์ด์งํํ๊ณ ์ด์ง ๋ณํ ํ์์ ๋ฌธ์์ด์ "0"์ ๊ฐฏ์๋ฅผ ํ๋์ฉ ๋ํ์๋ฉด ๋ฉ๋๋ค. ๋ฌธ์์ด์ ์๋ฅผ ์ด์ง๋ฒ์ผ๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ Java์ Integer.toBinaryString(int) ๋ฅผ ์ฌ์ฉํ๋ฉด ํธ๋ฆฌํ๊ฒ ๊ตฌํ ์ ์์ต๋๋ค. class Solution { fun solution(s: String): IntArray { var str = s var trans = 0 var cnt = 0 while(str != "1"){ trans++ cnt += str.filter{ it == '0'}.length str = Integer.toBinaryString(str.filter{it == '1'}.length) } return intArrayOf(trans, cnt)..
-
[Programmers] Lv2.JadenCase ๋ฌธ์์ด ๋ง๋ค๊ธฐ(kotlin)SW Test/Programmers 2022. 9. 12. 11:07
๋ฌธ์ ์์ ํ์ด ๋จผ์ , ์ฒซ ๋ฒ์งธ ๋ฌธ์์ด์ ์ ์ธํ๊ณ ๋ค๋ฅธ ๋ฌธ์์ด์ ์๋ฌธ์๋ก ๋ณ๊ฒฝ๋์ด์ผ ํ๋ฏ๋ก ์ ์ฒด ๋ฌธ์์ด์ ์๋ฌธ์ํ ์ํต๋๋ค.(toLowerCase) ์ดํ " " delimeter ๊ธฐ์ค์ผ๋ก ๋ฌธ์์ด์ ๋ถ๋ฆฌํ ๋ค ์ฒซ ๋ฒ์งธ ๋ฌธ์์ด์ ๋๋ฌธ์ํ ์ํค๋ฉด ๋ฉ๋๋ค(toUpperCase). ํ์ง๋ง delimeter๊ฐ ์ฐ์์ ์ผ๋ก ๋ค์ด๊ฐ ์ ์๊ณ ์ฐ์์ ์ผ ๊ฒฝ์ฐ ๋น๋ฌธ์์ด์ด split ๋ฆฌ์คํธ๋ก ์ถ๊ฐ๊ฐ ๋ฉ๋๋ค. ์ด๋ด ๋ first๋ฅผ ํธ์ถํ ๋ ๋ฐํ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ฏ๋ก firstOrNull ํจ์๋ฅผ ํตํด์ Null Check ํ ๋๋ฌธ์ํ ์ํค๋๋ก ํ์๋ฉด ๋ฉ๋๋ค. class Solution { fun solution(s: String): String { return s.toLowerCase().split(" ").map{ it.firs..