본문 바로가기

분류 전체보기

[프로그래머스] 덧칠하기 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
비밀키 교환방식 (디피-헬만 , RSA ) 대칭키는 암호화와 복호화에 대한 문장이 동일한 형태이고,비대칭키는 암호화와 복호화 키가 다른것을 의미.    디피-헬만 키 교환 방식 이란?- 실제 키값을 바로 전달하는것이 아니라, 키 값을 만드는 방법을 전달하는 방식- 단점은 공개키가 믿을 수 있는 공개키인지 자체만으로는 신원 검증이 어렵고, 전자서명이 가능한 다른 암호화 방식과 섞어서 사용. 교환방식앨리스 - 1  , 밥 - 2 , 이브 - 해커1과 2는 통신을 성립하기 위한 비밀키를 교환하고자함.큰소수  P , 적절한 정수 G를 공개. P와 G는 공개되어도 상관없음 1은 P미만의 정수 a를 선택후 A = G^a(mod P)를 만족하는 A를 2에게 전송. 단 a는 1만 알아야함 , A는 누구한테 가던 상관없음2는 P미만 정수 b를 선택후 , B = ..
[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/42862
[프로그래머스] 크기가 작은 부분 문자열 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초 미만일 경우 영상의 마지막 위치로 이동합니다. 영상의 마지막 위치는 동영상의 길이와 같습니다.오프닝 건너뛰기: 현재 재생 위치가 오프닝 ..