Algorithm
-
[Programmers] Lv1. ๋ง์น ํ๊ธฐ(Kotlin)SW Test/Programmers 2023. 5. 3. 00:09
๋ฌธ์ ์์ ํ์ด n ๊ฐ์ ํฌ๊ธฐ ๋ฐฐ์ด์ ๋ง๋ ํ section์์ ๊ฐ๋ฆฌํค๋ ์ธ๋ฑ์ค์๋ true๋ก ํ๊ธฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ section์ ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค๋ถํฐ ์์ํ์ฌ ํด๋น ์ธ๋ฑ์ค๊ฐ true๋ฉด ํ์ธํธ ์น ์ ๋ฌด์กฐ๊ฑด ํด์ผํ๋ answer ์ 1์ ๋ํฉ๋๋ค. ์ดํ ํ์ธํธ ์น ์ ํฌ๊ธฐ์ธ m ๋งํผ ์ธ๋ฑ์ค๋ฅผ ๋ํ ํ ํ๋์ฉ ๋ฐฐ์ด์ ํ์ธํฉ๋๋ค. ํด๋น ์ธ๋ฑ์ค๊ฐ false๋ฉด 1์ฉ ๋ํด ํ์ธํธ ์น ํด์ผ ํ๋ ๊ณณ์ ์ฐพ๊ณ n ๊น์ง ํ์ธํ์์ผ๋ฉด ์ข ๋ฃํฉ๋๋ค. class Solution { fun solution(n: Int, m: Int, section: IntArray): Int { var answer: Int = 0 val arr = Array(n+1){false} section.forEach{ arr[it] = true} var idx..
-
[Programmers] Lv1. ๋์ถฉ ๋ง๋ ์ํ(kotlin)SW Test/Programmers 2023. 5. 2. 23:15
๋ฌธ์ ์์ ํ์ด targets ์์ ํ๋๋น ์ต์ ํค๋ฅผ ๋ช ๋ฒ ๋๋ฅด๋์ง ์์์ผ ํฉ๋๋ค. ๋ฌธ์์ด์ ๋ฌธ์ ํ๋์ฉ keymap์์ ์กฐํํ์ฌ ๊ฐ์ฅ index๊ฐ ์์ ๊ฒ์ ํํด์ผ ํฉ๋๋ค. ํ์ง๋ง, ์ด ๋ ๋ชจ๋ keymap์ ์ฐพ๊ณ ์ ํ๋ ๋ฌธ์๊ฐ ์์ ๊ฒฝ์ฐ๋ ๋ฌธ์์ด ์์ฒด๋ฅผ keymap์ ํตํด์ ๋ง๋ค ์ ์๋ค๋ ๋ง๊ณผ ๊ฐ์ต๋๋ค. ๋ฐ๋ผ์, check ๋ณ์๋ฅผ ํตํด ํ๋์ ๋ฌธ์์์ ์ฐพ์ ์ ์์ ๊ฒฝ์ฐ๋ -1์ ๋ฐํํ๋๋ก ํด์ผํฉ๋๋ค. ๋ฌธ์์ด์ ์ฐพ์ ์ ์์ ๋ fold ์ฐ์ฐ์๋ฅผ ํตํด์ (index + 1)์ ๋ํ ๊ฐ์ ๋ฐํํ๋ฉด ๋ฉ๋๋ค. import kotlin.math.* class Solution { fun solution(keymap: Array, targets: Array): IntArray = targets.map{ ta..
-
[Programmers] Lv1. ๋ฐํํ๋ฉด ์ ๋ฆฌ(Kotlin)SW Test/Programmers 2023. 4. 26. 00:31
๋ฌธ์ ์์ ํ์ด ๋จผ์ ํ์ผ์ด ์๋ ๊ณณ์ y, x ์ขํ๋ฅผ ์ฐพ์ต๋๋ค. ์ข์๋จ์ y์ขํ๋ ํ์ผ๋ค์ y ๊ฐ๋ค ์ค ๊ฐ์ฅ ์ต์๊ฐ์ด ๋ฉ๋๋ค. ์ข์๋จ์ x์ขํ๋ ๋์ผํ๊ฒ ํ์ผ๋ค์ x ๊ฐ๋ค ์ค ๊ฐ์ฅ ์ต์๊ฐ์ด ๋ฉ๋๋ค. ์ฐํ๋จ์ y์ขํ๋ ํ์ผ๋ค์ ( y + 1 ) ๊ฐ๋ค ์ค ๊ฐ์ฅ ์ต๋๊ฐ์ด ๋ฉ๋๋ค. ์ฐํ๋จ์ x์ขํ๋ ํ์ผ๋ค์ ( x + 1 ) ๊ฐ๋ค ์ค ๊ฐ์ฅ ์ต๋๊ฐ์ด ๋ฉ๋๋ค. import kotlin.math.* class Solution { fun solution(wallpaper: Array): IntArray = intArrayOf(Int.MAX_VALUE, Int.MAX_VALUE, Int.MIN_VALUE, Int.MIN_VALUE).apply{ wallpaper.forEachIndexed{ index, paper ->..
-
[Programmers] Lv2.๋ชจ์์ฌ์ (kotlin)SW Test/Programmers 2022. 10. 22. 18:22
๋ฌธ์ ์์ ํ์ด ๋ฐฑํธ๋ํน ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ฉด ์ฝ๊ฒ ํ ์ ์์ต๋๋ค. class Solution { val list = mutableSetOf() fun getResult(word: String,idx: Int, str: String){ if(idx == str.length){ list.add(word) }else{ for(ch in str){ getResult(word + ch, idx+1, str) } getResult(word, idx+1, str) } } fun solution(word: String): Int { getResult("", 0, "AEIOU") return list.toList().sorted().indexOf(word) } } ์ฐธ๊ณ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ธ 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 ..