본문 바로가기

IT

[백준] 피보나치 https://www.acmicpc.net/problem/10870fun main() = with(System.`in`.bufferedReader()) { val count = readLine().toInt() val array = Array(count + 1) { 0 } array[0] = 0 if (count >= 1) { array[1] = 1 } for (i in 2..count) { array[i] = array[i - 1] + array[i - 2] } println(array[count])}
[백준] 그룹단어 체크 https://www.acmicpc.net/problem/1316 문제그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다.단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오.  fun main() = with(System.`in`.bufferedReader()) { val count = readLine().toInt() val words = arrayOfNulls(count) for (i in 0 until ..
[프로그래머스] 덧칠하기 https://school.programmers.co.kr/learn/courses/30/lessons/161989 fun solution(n: Int, m: Int, section: IntArray): Int { var answer = 0 val paint = IntArray(n) for (s in section) { paint[s - 1] = 1 } var i = 0 while (i
[Flow] Flow combine 에러시 미동작 관련 내부 동작 실제 두개의 액션을 실행시켜 동작시throw 즉 에러를 강제로 던지거나 예외사항이 발생했을때downStream으로 가지 않는 이슈가 있었다.combine( action1(query), action2(query)) { action1, action2 -> action1 to action2}.collect { entity -> ...} catch를 통해 upStream에 대한 예외처리를 하면 되지만 왜 그런지 내부를 살펴보자.  실제 combine 내부의 동작을 보면  내부에 result 액션에 대한 동작을 channel을 통해 가져와 동작시키게 되어있지만,결과 액션 이후 result를 transform 하여 변경된 응답값을 뱉는 과정을 타야하지만실제 while문 내부 resultChanne..
[프로그래머스] 귤 고르기 https://school.programmers.co.kr/learn/courses/30/lessons/138476?language=kotlin @Testfun solution() { val k: Int = 6 val tangerine: IntArray = intArrayOf() var answer: Int = 0 val map = mutableMapOf() for (i in tangerine.indices) { map[tangerine[i]] = map.getOrDefault(tangerine[i], 0) + 1 } var result = k for (i in map.values.sortedDescending()) { if(resul..
[프로그래머스] 크기가 작은 부분 문자열 https://school.programmers.co.kr/learn/courses/30/lessons/147355 문제 설명숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하세요.예를 들어, t="3141592"이고 p="271" 인 경우, t의 길이가 3인 부분 문자열은 314, 141, 415, 159, 592입니다. 이 문자열이 나타내는 수 중 271보다 작거나 같은 수는 141, 159 2개 입니다.제한사항1 ≤ p의 길이 ≤ 18p의 길이 ≤ t의 길이 ≤ 10,000t와 p는 숫자로만 이루어진 문자열이며, 0으로 시작하지 않..
[프로그래머스] 달리기 경주 얀에서는 매년 달리기 경주가 열립니다. 해설진들은 선수들이 자기 바로 앞의 선수를 추월할 때 추월한 선수의 이름을 부릅니다. 예를 들어 1등부터 3등까지 "mumu", "soe", "poe" 선수들이 순서대로 달리고 있을 때, 해설진이 "soe"선수를 불렀다면 2등인 "soe" 선수가 1등인 "mumu" 선수를 추월했다는 것입니다. 즉 "soe" 선수가 1등, "mumu" 선수가 2등으로 바뀝니다.선수들의 이름이 1등부터 현재 등수 순서대로 담긴 문자열 배열 players와 해설진이 부른 이름을 담은 문자열 배열 callings가 매개변수로 주어질 때, 경주가 끝났을 때 선수들의 이름을 1등부터 등수 순서대로 배열에 담아 return 하는 solution 함수를 완성해주세요.제한사항5 ≤ players의..
[프로그래머스] 동영상 재생기 문제 설명당신은 동영상 재생기를 만들고 있습니다. 당신의 동영상 재생기는 10초 전으로 이동, 10초 후로 이동, 오프닝 건너뛰기 3가지 기능을 지원합니다. 각 기능이 수행하는 작업은 다음과 같습니다.10초 전으로 이동: 사용자가 "prev" 명령을 입력할 경우 동영상의 재생 위치를 현재 위치에서 10초 전으로 이동합니다. 현재 위치가 10초 미만인 경우 영상의 처음 위치로 이동합니다. 영상의 처음 위치는 0분 0초입니다.10초 후로 이동: 사용자가 "next" 명령을 입력할 경우 동영상의 재생 위치를 현재 위치에서 10초 후로 이동합니다. 동영상의 남은 시간이 10초 미만일 경우 영상의 마지막 위치로 이동합니다. 영상의 마지막 위치는 동영상의 길이와 같습니다.오프닝 건너뛰기: 현재 재생 위치가 오프닝 ..