본문 바로가기
반응형

전체 글282

[RxSwift] 함수형 프로그래밍 RxSwift가 따르고 있는 함수형 프로그래밍 패러다임이 무엇인지 알아보자. 프로그래밍 패러다임이란 패러다임이란 '사람들의 견해나 사고를 근본적으로 규정하고 있는 테두리로서의 인식의 체계'를 말한다. 그런데 프로그래밍에서의 패러다임은 대체 뭘 말하는 것일까? 프로그래밍 패러다임을 이해하기에 좋은 설명을 위키피디아에서 발견했다. 프로그래밍 패러다임은 프로그래머에게 프로그래밍의 관점을 갖게 해주고, 결정하는 역할을 한다. 예를 들어 객체지향 프로그래밍은 프로그래머들이 프로그램을 상호작용하는 객체들의 집합으로 볼 수 있게 하는 반면에, 함수형 프로그래밍은 상태값을 지니지 않는 함수값들의 연속으로 생각할 수 있게 해준다. 객체지향 프로그래밍에서는 실제 세계를 반영하고자 프로그램을 객체와 객체들의 상호작용으로 보.. 2023. 8. 8.
[RxSwift] 선언형 프로그래밍 RxSwift는 함수형 프로그래밍 패러다임을 따른다. 그리고 함수형 프로그래밍은 선언형 프로그래밍 패러다임을 따른다. 선언형 프로그래밍 패러다임을 공부해보자. 선언형 프로그래밍의 정의 위키피디아의 정의를 따르면 다음과 같다. 프로그램이 어떤 방법으로 해야 하는지를 나타내기보다 무엇과 같은지를 설명하는 경우에 "선언형"이라고 한다. 간단히 말하여, 명령형 프로그램은 알고리즘을 명시하고 목표는 명시하지 않는 데 반해 선언형 프로그램은 목표를 명시하고 알고리즘을 명시하지 않는 것이다. 선언형 프로그래밍은 구체적인 '방법'이 아니라 '목표' 자체를 설명하는 것이라고 한다. 반대로 '방법'을 설명하는 경우 명령형 프로그래밍 패러다임이라고 부른다. 그러므로 선언형 프로그래밍을 이해하기 위해서는 명령형 프로그래밍도 .. 2023. 8. 8.
백준 3079번 입국심사 - C++ 풀이 1. t초동안 심사할 수 있는 사람 수의 최댓값은 ∑(t / Tk)이다. 2. 파라매트릭 서치를 사용하여 M명을 모두 처리할 수 있는 최소 시간을 구한다. 1. t초동안 심사할 수 있는 사람 수의 최댓값은 ∑(t / Tk)이다. t초동안 심사할 수 있는 사람 수를 최대로 하려면, 각 심사대가 쉬지 않고 일을 해야 한다. 따라서 각 심사대가 t / Tk명을 처리할 수 있고 이를 모두 더하면 t초 동안 심사할 수 있는 사람의 수의 최댓값을 구할 수 있다. 시간복잡도는 O(N). 2. 파라매트릭 서치를 사용하여 M명을 모두 처리할 수 있는 최소 시간을 구한다. M명을 모두 처리할 수 있는 최소 시간을 min_t라고 하면, t >= min_t인 경우 항상 모든 사람 심사가 가능하고 t < min_t인 경우 항상.. 2023. 8. 5.
백준 15665번 N과 M (11) - C++ 풀이 1. 숫자를 하나씩 총 M개 뽑는다. 2. 숫자를 뽑을 때는 작은 숫자부터 뽑아본다. 3. 후보 숫자 목록에 중복이 없도록 후보 숫자들을 배열이 아닌 set으로 관리한다. 1. 숫자를 하나씩 총 M개 뽑는다. N개의 후보 숫자 중에서 총 M개 뽑으면 수열이 완성된다. M개를 다 뽑았으면 완성된 수열을 출력해주는 것을 반복한다. 2. 숫자를 뽑을 때는 작은 숫자부터 뽑아본다. 수열을 사전 순으로 증가하는 순서로 완성해야 한다. 따라서 뽑을 때 더 작은 숫자를 먼저 뽑아야 한다. (0으로 시작하는 수열을 1로 시작하는 수열보다 먼저 출력해야 하므로 0부터 뽑아보는 것이다.) 3. 후보 숫자 목록에 중복이 없도록 후보 숫자들을 배열이 아닌 set으로 관리한다. 그런데 중복되는 수열을 출력하면 안된다. 중복되는.. 2023. 8. 3.
백준 2529번 부등호 - C++ 풀이 1. 부등호 조건에 맞게 중복 없이 숫자를 하나씩 뽑는다. 2. k+1개를 다 뽑았으면 최대, 최소 정수를 업데이트한다. 1. 부등호 조건에 맞게 중복 없이 숫자를 하나씩 뽑는다. 백트래킹으로 풀 수 있다. 부등호 조건에 맞으면서 중복 사용이 없도록 숫자를 하나씩 뽑아나간다. 2. k+1개를 다 뽑았으면 최대, 최소 정수를 업데이트한다. 부등호가 k개이므로 총 k+1개의 숫자를 뽑아야 한다. 다 뽑았으면 완성된 정수를 구하여 최대, 최소 정수를 업데이트한다. 이때는 문자열을 활용하면 편하다. #include using namespace std; int k; char signs[10]; int pick[10]; bool is_used[10]; string max_ans = "0000000000", min_.. 2023. 8. 3.
반응형