Flutter 에서 Singleton Pattern 을 구현하려면 factory keyword를 사용하면 된다. factory keyword는 클래스 이름을 강제하는데, _instance에서는 명명-생성자를 사용하여 해결할 수 있다. (다른 언어와 약간 느낌이 다르다.) 사용 예제: class Settings { static final Settings _instance = Settings._(); // named-ctor factory Settings() { return _instance; } Settings._() { //... call function for init. } } 사용 용도: 나는 모바일 설정 파일을 제어하는 Repository 역할을 수행하는 클래스를 싱글톤으로 구현하였다.
github : github.com/ingyeoking13 ingyeoking13 - Overview I'm working as a Windows application programmer. I have experience in deveoping WPF. I'm currently interested in Clean architecture. and Algorithm. - ingyeoking13 github.com resume : ingyeoking13.github.io/ PROJECTS POSCO ICT RPA solution - a.works studio / windows .net desktop application (2020.02 ~ ) Vigne - android application (2020.07 ..
하노이의 탑 하노이의 탑 이라는 문제는 일렬로 서있는 세 막대기 중 왼쪽 끝 막대기에 모든 원반들이 크기 순으로 꽂혀있고, 일정한 룰에 따라 그것을 전부 오른 쪽 끝 막대기로 이동하는 것을 묻는 문제이다. 아래는 하노이의 탑 사진 (wikipedia) 큰 원반이 항상 아래에 있어야 한다는 규칙을 준수하면서, 첫 번째 막대기에서 세 번째 막대기로 가는데에 가장 최단 수행 횟수가 존재할 거라 생각하는가? 만약 최단 수행이 존재한다면, 몇 번의 수행 만에 작업을 완료 할 수 있는가? 이에 대해 생각을 해볼 것이다. 하노이의 탑은 브라마의 탑이라고도 불리며 원래는 64개의 원반을 가지고 이동시키는 놀이로 부터 기원한다. 생각 step 1 처음부터 많은 수의 원반을 생각하지 말고 원반의 수를 줄여보자. 원반이 한..
FIsher-Yates Shuffle 순서를 정하는 문제에 직면하였을 때, 원소들을 어떻게 무작위적으로 배치하는가 생각이 들었다. 산업공학과 학부 시절에 가장 흥미가 있었던 분야가 통계/실험계획법이었기에, 랜덤/샘플링 이라는 단어만 들어도 그냥 재밌을것 같다. 현실 문제 만약 n 명의 사람이 있다. n 명의 사람을 일렬로 세우는데 순서를 무작위적으로 바꾸기 위한 알고리즘을 제시하라. 편향된 알고리즘 제시 이 이야기를 시작하기 전에 우선 편향된 알고리즘을 보여주려고 한다. n 개의 원소를 무작위로 셔플하는 naive approach #include #include #include #include #include using namespace std; vector ans; set s; int main() { ..
link https://codeforces.com/contest/496/problem/D Problem - D - Codeforces codeforces.com 흥미로운 문제다 테니스게임은 set라는 개념이 있다. 하나의 set은 어떤 플레이어가 점수 t를 달성하면 끝나고, 어떤 플레이어가 s개의 set을 이기면 테니스 게임이 끝난다. 프로그래밍 문제는 이 부분에 대한 질문이다. 만약 어느 게임의 스코어 정보만 남아있을 때 s와 t를 찾아낼 수 있는지에 대한 문제다. 다음 예를 보자. 5 1 2 1 2 1 5개의 숫자정보 아래 숫자 5개는 score를 낸사람의 번호다. 이 때 s와 t를 추론하는 것이다. naive 한 접근법은 모든 s 가능성을 탐색하자. s : from 1 to n. 만약 5개의 점수가..
참고문헌 나무위키 https://namu.wiki/w/%EC%A4%91%EA%B5%AD%EC%9D%B8%EC%9D%98%20%EB%82%98%EB%A8%B8%EC%A7%80%20%EC%A0%95%EB%A6%AC 중국인의 나머지 정리 - 나무위키 나눗셈 정리에 의하여 m=q⋅lcm(a1,a2,⋯ ,an)+rm=q\cdot\text{lcm}\left(a_1,a_2,\cdots,a_n\right)+rm=q⋅lcm(a1,a2,⋯,an)+r 을 만족하는 정수 q,rq,rq,r이 유일하게 존재한다 (0≤r≤lcm(a1,a2,⋯ ,an)0\leq r\leq\text{lcm}\left(a_1,a_2,\cdots,a_n\right)0≤r≤lcm(a1,a2,⋯,an)). 그런데 aia_iai가 mmm namu..
You are given a sequencea1,a2,…,ana1,a2,…,anconsisting ofnnnon-zero integers (i.e.ai≠0ai≠0). You have to calculate two following values: the number of pairs of indices(l,r)(l,r)(l≤r)(l≤r)such thatal⋅al+1…ar−1⋅aral⋅al+1…ar−1⋅aris negative; the number of pairs of indices(l,r)(l,r)(l≤r)(l≤r)such thatal⋅al+1…ar−1⋅aral⋅al+1…ar−1⋅aris positive; Print two integers — the number of subsegments with negat..
백준 2133 타일채우기 해설 흥미로운 문제이다. 정답을 미리 알거나 스포일링 당하는건 괴롭지만, ... 생각해나갈 때는 알쏭달쏭한 즐거운 문제였을 것이다.(구현문제보단 재밌는듯) 가로 길이 2 인 것을 만드는 경우의 수는 3가지이다. ( ||_ ),( _|| ), ( _ _ _ )이다. 임의의 길이 i를 만드는 데에는 i-2 길이를 만드는 경우의 수에 3가지 경우의 수를 조합하는 것이므로, f(i) = f(i-2)*2 이다. 그리고, 길이 4 이상부터 다음과 같은 형태를 만들 수 있다. 이러한 형태는 4, 6, 8, ... i 길이 만큼 만들 수 있고, 뒤집은 형태도 있기 때문에 각 길이마다 2가지의 경우의 수가 있다. 이를 종합하면 i를 만드는 경우의 수는 다음과 같다. f(i) = f(i-2)*2 ..
백준 14494 다이나믹이 뭐에요? 해설 n*n의 2차원 공간에서 오른쪽, 아래쪽, 우아래 대각 세 방법만 이용하여 이동한다고 하자. 이때 임의의 점 (x, y)에 도달 할 수 있는 경우의 수 f(x, y)는 f(x-1,y) + f(x, y-1) + f(x-1, y-1)이다. d배열을 1칸 크게 잡는다면 특별히 배열 range-exception 처리를 할 필요 없이 온전하게 연산에만 집중할 수 있다. #include #define MOD ((int)1e9+7) using namespace std; int d[(int)1e3+1][(int)1e3+1]; int main() { int n, m; cin >> n >> m; d[0][0] = 1; for (int i=1; i
- Total
- Today
- Yesterday
- Simulation
- 최단경로 알고리즘
- Grafana
- 아레나
- 데이터 중심 애플리케이션 설계
- 시뮬레이션
- 이산 수학
- grafana cloud
- beginning javascript
- 로젠
- Discrete Mathematics
- rosen
- arena simulation
- 명제논리
- 백준
- 대규모 시스템 설계 기초
- 항해99
- 아레나시뮬레이션
- 자바스크립트 예제
- javascript
- 엄청난 인내심과 시뮬레이션을 위한 아레나 툴
- 이산수학
- 그라파나
- Propositional and Predicate Logic
- 자바스크립트
- 아레나 시뮬레이션
- flutter
- paul wilton
- 가상 면접 사례로 배우는 대규모 시스템 설계 기초
- Arena
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |