일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 분리집합
- acm
- 문자열
- stack
- 유니온파인드
- 백트래킹
- backtracking
- 세그먼트트리
- 알고스팟
- 너비우선탐색
- 분할정복
- 알고리즘문제해결전략
- Algospot
- union-find
- 완전탐색
- Greedy
- DP
- 이분탐색
- 동적계획법
- BOJ
- 재귀
- 다이나믹프로그래밍
- BFS
- 누적합
- DFS
- 스택
- priority_queue
- 백준
- 종만북
- 그리디
- Today
- Total
목록전체 글 (105)
DAMPER's blog
다음 내용은 'Doit! 플러터 앱 프로그래밍' 책 내용을 정리한 내용입니다. JSON을 사용하려면 소스에 convert라는 라이브러리를 포함해야 한다. import 'dart:convert'; void main() { var jsonString = ''' [ {"score": 40}, {"score": 80} ] '''; var scores = jsonDecode(jsonString); print(scores is List); var firstScore = scores[0]; print(firstScore is Map); print(firstScore['score'] == 40); } 결과 true true true jsonString 변수에 저장된 데이터가 JSON형태의 문자열이다. 이 데이터를 co..
다음 내용은 'doit! 플러터 앱 프로그래밍' 책 내용을 정리한 내용입니다. 동기 VS 비동기 비동기 프로세스 작동방식 다트는 async와 await 키워드를 이용해 비동기 처리를 구현한다. 1. 함수를 선언할 때, 함수 이름 뒤 본문이 시작하는 중괄호 { 앞에 async 키워드를 붙여 비동기로 만든다. 2. 비동기 함수 안에서 언제 끝날지 모르는 작업 앞에 await 키워드를 붙인다. 3. 2번 작업을 마친 결과를 받기 위해 비동기 함수 이름 앞에 Future (값이 여러 개면 Stream) 클래스를 지정한다. void main() { checkVersion(); print('end process'); } Future checkVersion() async { var version = await loo..
"간단하게 배워서 다양한 플랫폼에 써먹자!"
https://www.acmicpc.net/problem/13140 13140번: Hello World! N이 주어질 때 hello + world = N을 만족하는 서로 다른 한 자리 자연수(0 포함) d, e, h, l, o, r, w를 구해서 아래 그림과 같은 형태로 출력하는 프로그램을 작성하여라. 단, h와 w는 0이 될 수 없다. www.acmicpc.net 문제 설명 복면산 문제와 같은 문제이다. hello + world = N을 만족하는 d, e, h, l, o, r, w 7글자에 서로다른 숫자를 대입해서 N이 나오는가를 묻는 문제이다. 재귀 완전탐색으로 7글자에 대한 수를 0부터 9까지 넣는 과정을 진행했는데, w와 h에는 0이 들어갈 수 없으므로 이 부분을 처리해주면 된다. 1 2 3 4 ..
https://www.acmicpc.net/problem/2162 2162번: 선분 그룹 첫째 줄에 N(1 ≤ N ≤ 3,000)이 주어진다. 둘째 줄부터 N+1번째 줄에는 양 끝점의 좌표가 x1, y1, x2, y2의 순서로 주어진다. 각 좌표의 절댓값은 5,000을 넘지 않으며, 입력되는 좌표 사이에는 빈칸이 하 www.acmicpc.net 문제 설명 선분의 양끝의 점 2개를 N번 입력받고 선분끼리 만나면 선분 그룹안에 속한다고 한다. 이 때, 선분 그룹의 갯수와 크기가 가장 큰 그룹의 선분 갯수를 출력하면 된다. 여기서 필요한 것은 두 선분이 만나는 것을 체크하는 것과 그룹을 만드는 것이다. 두 선분이 만나는지 아닌지를 판단하는 CCW와 그룹을 만드는 Disjoint-Set을 사용했다. 평소에 Di..
이 글은 'A Tutorial on the Implementation of Block Ciphers : Software ans Hardware Appplications, Howard M. Heys' 를 읽고 정리한 글입니다. Chapter 1. Introduction to Block Ciphers 1.1 Target Implementation Environments 블록암호는 보안 어플리케이션들에서 많이 사용된다. 대칭키 암호화 방식으로, 블록암호 알고리즘은 평문 블록(대개 64-bit 또는 128-bit)을 암호화하여 같은 사이즈의 암호화 블록을 생성한다. 이 암호화 방식은 다양한 환경에서 사용되며, AES 암호는 오늘날 가장 많이 적용된 암호이다. 블록암호의 구현은 크게 소프트웨어 구현, 하드웨어 구..