์ ์ฒด ๊ธ
-
[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..
-
[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..