Algorithm
-
[Programmers] Lv2. ๋ฉ๋ด ๋ฆฌ๋ด์ผ(kotlin)SW Test/Programmers 2022. 9. 9. 11:21
๋ฌธ์ ์์ ํ์ด ํ๋์ ์ฃผ๋ฌธ(order)์์ ๊ตฌ์ฑ๋ ์ ์๋ ๋ฉ๋ด ๊ตฌ์ฑ์ ๋ฐฑํธ๋ํน ๊ธฐ๋ฒ์ ์ฌ์ฉํฉ๋๋ค. ์ด ๋ ์ต์ 2๊ฐ ์ด์์ ๋ฉ๋ด๊ฐ ๊ตฌ์ฑ๋์ด์ผ ํ๊ธฐ์ ๋ฌธ์์ด์ด 2 ์ดํ์ธ ๊ฒฝ์ฐ๋ ์ ์ธํ๊ณ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ก ํํํด์ผํ๊ธฐ์ ๋ฏธ๋ฆฌ ์ ๋ ฌ์ ์ํต๋๋ค. ์ดํ course ๋ฅผ ํ๋์ฉ ํ์ํ๋ฉด์ ํด๋น ๊ฐฏ์๋ก ๊ตฌ์ฑ๋ ๋ฉ๋ด ์กฐํฉ ์ค 2๋ฒ ์ด์ ์ฃผ๋ฌธ๋ ๊ฒ ์ค ์ต๋๊ฐ์ ๊ตฌํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ต๋๊ฐ๊ณผ ๋์ผํ ๋ฉ๋ด ๊ตฌ์ฑ์ ๋ชจ๋ answer์ ์ถ๊ฐํ์๋ฉด ๋ฉ๋๋ค. class Solution { val csmap = mutableMapOf() fun getCourseInfo(str: String, idx: Int, s: String){ if(str.length == idx){ if(s.length >= 2){ csmap.put(s, c..
-
[Programmers] Lv2. ํ๋ ฌ ํ ๋๋ฆฌ ํ์ ํ๊ธฐ(kotlin)SW Test/Programmers 2022. 9. 9. 11:06
๋ฌธ์ ์์ ํ์ด ํ๋ ฌ ํ์ ๋ก์ง์ ์ธ๋ฑ์ค ํ๋์ฉ ์ด๋ํ๋๋ก ๊ตฌํํ๋ฉด ๋ฉ๋๋ค. queies๋ 1๋ถํฐ ์์ํ๋ -1์ ํด์ฃผ์๋ฉด ๋ฉ๋๋ค. import kotlin.math.* class Solution { fun solution(rows: Int, columns: Int, queries: Array): IntArray { var answer = mutableListOf() val arr = Array(rows){ i -> IntArray(columns){ j -> i*columns + j +1} } queries.forEach{ val fy = it[0] -1 val fx = it[1] -1 val sy = it[2] -1 val sx = it[3] -1 val last = arr[fy][fx] var num..
-
[Programmers] Lv2. ํ๊ฒ ๋๋ฒ(kotlin)SW Test/Programmers 2022. 8. 7. 23:54
๋ฌธ์ ์์ ํ์ด DFS ๊ธฐ๋ณธ์ ์ธ ๋ฌธ์ ์ ํ์ผ๋ก ์ฌ๊ท์ break point๋ง ์ ์ง์ ํ๋ฉด ๋ฉ๋๋ค. class Solution { var answer = 0 fun getresult(numbers: IntArray, checks: IntArray, target: Int){ if(checks.size == numbers.size){ val sum = numbers.foldIndexed(0){index, acc, i -> acc + i*checks[index] } if(target == sum) answer++ }else{ getresult(numbers, checks + intArrayOf(-1), target) getresult(numbers, checks + intArrayOf(1), target) } ..
-
[Programmers] Lv2. ๊ธฐ๋ฅ๊ฐ๋ฐ (kotlin)SW Test/Programmers 2022. 8. 7. 17:42
๋ฌธ์ ์์ ํ์ด ์คํ/ํ๋ฅผ ์ด์ฉํ ๋ํ์ ์ธ ๋ฌธ์ ๋ก ๊ฐ ๊ธฐ๋ฅ๋ณ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ days ๋ฐฐ์ด์ ๋ด์ต๋๋ค. ์คํ๋ฅผ ์ด์ฉํด๋ ๋์ง๋ง elem์ด๋ผ๋ ๋ณ์๊ฐ top์ ๊ฐ๋ฆฌํค๋๋ก ํ์ฌ top๋ณด๋ค ์์ ๊ธฐ๊ฐ์ ์๋ฅผ ๊ตฌํ๊ณ answer์ ๋ํ๋ฉด ๋ฉ๋๋ค. import kotlin.math.* class Solution { fun solution(progresses: IntArray, speeds: IntArray): IntArray { var answer = mutableListOf() val days = progresses.mapIndexed{ index, elem -> ceil(((100-elem).toFloat() / speeds[index]).toDouble()).toInt() } var elem = days.fi..
-
[Programmers] Lv2. ๋ฌธ์์ด ์์ถ(kotlin)SW Test/Programmers 2022. 7. 28. 23:08
๋ฌธ์ ์์ ํ์ด ์์ 5๋ฅผ ๋ณด์ฌ์ฃผ์ง ๋ชปํ์ง๋ง, ๋ฌธ์ ์์ ํ์ธํด๋ณด๋ฉด ๋ฌธ์์ด์ ๋ฌด์กฐ๊ฑด ์ฒ์๋ถํฐ ์ ํด์ง ๊ธธ์ด๋ก ์๋ฅธ๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ๋ฌธ์์ด์ด ๊ธธ์ด๊ฐ 1์ธ ๊ฒฝ์ฐ๋ 1๋ณด๋ค ์งง์ ๋ฌธ์์ด์ ์๊ธฐ ๋๋ฌธ์ 1์ ๋ฐํํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌธ์์ด ๊ธธ์ด์ ์ ๋ฐ ์ด๊ณผ์ ๊ธธ์ด์ผ ๊ฒฝ์ฐ ์์ถ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ํ์ธํ ํ์๊ฐ ์์ต๋๋ค.๋ฐ๋ผ์ ๋ฌธ์์ด ๊ธธ์ด ์ ๋ฐ ์ดํ์ ๊ธธ์ด๋ก ์์ถํด์ ์ต์ํ์ ๊ธธ์ด๋ฅผ ๋ฐํํฉ๋๋ค. count ๋ณ์๋ ์์ ๋ฌธ์์ด์ ๊ธธ์ด์ ํด๋น ๊ธธ์ด๋ก ์์ถ ์ ํด๋น ๊ธธ์ด๋ณด๋ค ์์ ๋ถ๋ถ์ ๋ณ๋๋ก ๋ํด์ค๋๋ค. ์ฆ, 8์ ๊ธธ์ด๋ฅผ ๊ฐ์ง๋ ๋ฌธ์์ด์์ 3๊ฐ์ฉ ์ชผ๊ฐ์ ์์ถํ ๊ฒฝ์ฐ ๋๋จธ์ง 2๋ ์๋์ผ๋ก ์ถ๊ฐํด์ฃผ๋ ๊ฒ์ ๋๋ค. str์ ๋ฌธ์์ด์ ์ ์ฅํด๋๊ณ ๋ค์ ๋ฌธ์์ด๊ณผ ๊ฐ์ผ๋ฉด cnt๋ฅผ +1 ํด์ฃผ๊ณ ๋ค๋ฅด๋ฉด cnt๊ฐ ์ฐจ์งํ๋ ๋งํผ ์ถ๊ฐ..
-
[Programmers] Lv2. N-Queen(kotlin)SW Test/Programmers 2022. 7. 26. 19:08
๋ฌธ์ ์์ ํ์ด N-Queen์ ๋ฐฑํธ๋ํน์ ๋ํ์ ์ธ ๋ฌธ์ ๋ก y์ถ์ ํ๋์ฉ ๋ด๋ ค๊ฐ๋ฉด์ x์ถ์ ํ๋ฒ ์ํํ์ฌ Queen์ด ๋์์ง ์ ์๋ ๊ณณ์ ์ฐพ๋ ๋ฌธ์ ์ ๋๋ค. ํ๋์ฉ ํ์ํ๋ฉด์ ์ฐพ์๋ ๋์ง๋ง ์ํ์ ์ผ๋ก ์ขํ๋ฅผ ํ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํ๋ฉด ๋น ๋ฅด๊ฒ ํ ์ ์์ต๋๋ค. ๋๊ฐ์ ๋ผ๋ฆฌ๋ ๊ฐ์ ๋ผ์ธ์ Queen์ด ์์ผ๋ฉด ์๋๋๋ฐ ์ขํ์ ๊ธฐ์ธ๊ธฐ๋ ๊ท์น์ ํตํด์ ๊ฐ์ ๋๊ฐ์ ์ธ์ง ์๋์ง ์ ์ ์์ต๋๋ค. ์ค๋ฅธ์ชฝ ์๋๋ก ํฅํ๋ ๋๊ฐ์ ์์ y-x ๊ฐ์ด ๋์ผํ ์ขํ๋ ๊ฐ์ ๋๊ฐ์ ์์ ์กด์ฌํฉ๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก ์ผ์ชฝ ์๋๋ก ํฅํ๋ ๋๊ฐ์ ๋ผ๋ฆฌ๋ y+x ๊ฐ์ด ๋์ผํฉ๋๋ค. ๋ฐ๋ผ์ y์ขํ๋ ํ๋์ฉ ๋ด๋ ค๊ฐ๋ฉด์ x์ขํ๋ง 0๋ถํฐ n-1๊น์ง ์ํํ์ฌ dlist (down list), rdlist(right down list) , ldlist(left do..
-
[Programmers] Lv1.์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ(kotlin)SW Test/Programmers 2022. 7. 23. 00:35
๋ฌธ์ ์์ ํ์ด ํด๋น ๋ฌธ์ ๋ map, set ๋ฑ์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ์กฐํฉํ๋ฉด ์ฝ๊ฒ ํ ์ ์๋ ๋ฌธ์ ์ ๋๋ค. ๋จผ์ , id_report_set์ id์ ํ๋์ set์ ๊ด๋ฆฌํ ์ ์๋ map์ ์์ฑํฉ๋๋ค. ์ดํ report์ ํ๋์ฉ ํ์ํ๋ฉด์ id_report_set์ ๊ฐ์ ์ธํ ํฉ๋๋ค. ์ค๋ณต๋ ์ฌ๋์ ์๋์ผ๋ก ์ ๊ฑฐ๊ฐ ๋ฉ๋๋ค. reported_count์๋ id ๋ง๋ค ์ ๊ณ ๋ฐ์ ํ์๋ฅผ ๊ธฐ๋กํฉ๋๋ค. ํด๋น ๊ฐ์ id_report_set์ ํ์ํ์ฌ id๊ฐ ์ ๊ณ ํ ์ฌ๋๋ค์ ๋ด์ value ๊ฐ์ผ๋ก ํ๋์ฉ ํ์๋ฅผ ์ฆ๊ฐ์ํต๋๋ค. ๋ง์ง๋ง์ผ๋ก id_list๋ฅผ ํ์ํ๋ฉด์ id๊ฐ ์ ๊ณ ํ ์ฌ๋๋ค ์ค ๊ฒฐ๊ณผ ๋ฉ์ผ์ ๋ฐ์ ์ฌ๋๋ค์ ์๋ฅผ ๊ณ์ฐํฉ๋๋ค. fun solution(id_list: Array, report: Array, k: Int):..
-
[Programmers] Lv1.์ ๊ท ์์ด๋ ์ถ์ฒ(kotlin)SW Test/Programmers 2022. 7. 18. 22:43
๋ฌธ์ ์์ ํ์ด ์ด ๋ฌธ์ ๋ ๋ฉ์๋ ์ฒด์ด๋ ๋ฐฉ์์ผ๋ก ์ฌ๋ฌ ๋ฒ์ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด ๋น ๋ฅด๊ฒ ํ ์ ์์ต๋๋ค. ํ์ง๋ง ๊ทธ๋งํผ ๋ค์ํ ํจ์์ ๋ํด์ ์์ง ๋ชปํ๋ฉด ํ๋์ฉ ๋ก์ง์ ์์ฑํ๋ ์๋ฐ์ ์์ต๋๋ค. ํด๋น ํ์ด๋ ๋ฌธ์ ์์ ์๊ตฌํ๋ ๋๋ก ํ๋์ฉ ๋ง์ถฐ๊ฐ๋ฉด์ ํ ์ ์์ต๋๋ค. class Solution { fun solution(new_id: String): String { var answer: String = "" val strbuilder = StringBuilder() new_id.lowercase().forEach{ if(it.isLetter() || it.isDigit() || it in arrayOf('-','_','.')){ if(!(it == '.' && strbuilder.isNotEmpty() &&..