diff --git "a/src/3week/jaewon/\354\243\274\354\260\250 \354\232\224\352\270\210 \352\263\204\354\202\260.kt" "b/src/3week/jaewon/\354\243\274\354\260\250 \354\232\224\352\270\210 \352\263\204\354\202\260.kt" new file mode 100644 index 0000000..59e18b8 --- /dev/null +++ "b/src/3week/jaewon/\354\243\274\354\260\250 \354\232\224\352\270\210 \352\263\204\354\202\260.kt" @@ -0,0 +1,42 @@ +class jaewon_Solution { + fun solution(fees: IntArray, records: Array): IntArray { + var answer: IntArray = intArrayOf() + val keys = records.groupBy{it.split(" ")[1]} + val blank = keys.keys.associateWith{0}.toMutableMap() + + keys.values.forEach{ key -> + val times = key.map{(it.split(" ")[0].split(":"))}.flatten().toMutableList() + if(times.size%4 != 0){ + times.add("23") + times.add("59") + } + var i = 0 + var total = 0 + repeat(times.size/4){ + // 입출차 셋트 + var h = (times[i+2].toInt()-times[i].toInt()) * 60 + var m = times[i+3].toInt()-times[i+1].toInt() + total += h+m + i+=4 + } + blank[key[0].split(" ")[1]] = total + } + + answer = blank.mapValues{ + val v = it.value + var temp = 0 + if(fees[0] < v){ + val add = if((v-fees[0])%fees[2] != 0) (v-fees[0])/fees[2]+1 else (v-fees[0])/fees[2] + temp = add*fees[3] + } + fees[1] + temp + }.toList().sortedBy{it.first}.map{it.second}.toIntArray() + return answer + } +} + +fun main(){ + jaewon_Solution().solution( + intArrayOf(180,5000,10,600), arrayOf("05:34 5961 IN", "06:00 0000 IN", "06:34 0000 OUT", "07:59 5961 OUT", "07:59 0148 IN", "18:59 0000 IN", "19:09 0148 OUT", "22:59 5961 IN", "23:00 5961 OUT") + ) +} \ No newline at end of file diff --git "a/src/3week/jaewon/\355\212\270\353\246\254\354\235\230 \353\266\200\353\252\250 \354\260\276\352\270\260.kt" "b/src/3week/jaewon/\355\212\270\353\246\254\354\235\230 \353\266\200\353\252\250 \354\260\276\352\270\260.kt" new file mode 100644 index 0000000..78daa80 --- /dev/null +++ "b/src/3week/jaewon/\355\212\270\353\246\254\354\235\230 \353\266\200\353\252\250 \354\260\276\352\270\260.kt" @@ -0,0 +1,32 @@ +import java.lang.StringBuilder +import java.util.LinkedList + +fun main(){ + val n = readln().toInt() + val tree = Array(n+1){ LinkedList()} + val visited = BooleanArray(n+1){ false } + val parents = IntArray(n+1){-1} + //인접리스트 만들기 + repeat(n-1){ + val (a,b) = readln().split(" ").map { it.toInt() } + tree[a].add(b) + tree[b].add(a) + } + + fun dfs(n: Int){ + for(num in tree[n]){ + if(!visited[num]) { + visited[num] = true + parents[num] = n + dfs(num) + } + } + } + + dfs(1) + val answer = StringBuilder() + for (i in 2..n){ + answer.append("${parents[i]}\n") + } + println(answer.toString()) +} \ No newline at end of file diff --git "a/src/3week/jaewon/\355\232\214\354\235\230\354\213\244 \353\260\260\354\240\225.kt" "b/src/3week/jaewon/\355\232\214\354\235\230\354\213\244 \353\260\260\354\240\225.kt" new file mode 100644 index 0000000..173ae9f --- /dev/null +++ "b/src/3week/jaewon/\355\232\214\354\235\230\354\213\244 \353\260\260\354\240\225.kt" @@ -0,0 +1,33 @@ + +class jaewon회의실배정 { + + data class TimeTable(val start : Int, val end : Int) + + fun solution(){ + val n = readln().toInt() + val timeTable = mutableListOf() + var endTime = 0 + var count = 0 + + repeat(n){ + val (start,end) = readln().split(" ").map { it.toInt() } + timeTable.add(TimeTable(start, end)) + } + + timeTable + .sortedWith( compareBy { it.end }.thenBy { -(it.end - it.start) }) + .forEach { + if (it.start >= endTime){ + count++ + endTime = it.end + } + } + + println(count) + } +} + +fun main(){ + jaewon회의실배정().solution() +} +