일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 네이버 치지직
- 치지직
- 애플 디벨로퍼 아카데미
- memoization
- Swift 기능
- 소프트웨어분석및설계
- 운영체제
- StateObject
- thread safe
- 동시성 프로그래밍
- swift문법
- Apple Developer Academy @ POSTECH
- SWIFT
- global soop
- useReducer
- 제앱소
- ObservableObject
- react
- 애플 디벨로퍼 아카데미 후기
- OS
- Swift 문법
- 네이버 부스트캠프
- ObservedObject
- Swift 디자인패턴
- 애플 디벨로퍼 아카데미 21주차 회고
- iOS 개발 오류
- 데이터베이스 공부
- 숭실대
- 데이터베이스
- 앱 비교 프로젝트
- Today
- Total
목록분류 전체보기 (285)
사과하는 제라스
합병정렬은 분할 정복(Divide and Conquer) 알고리즘을 이용하여 푸는 방식이다. 1. 먼저, 주어진 배열을 절반의 크기로 나누는데 그 크기가 2짜리 배열이 될 때까지 계속해서 반복한다. 2. 이후, 길이가 2인 각 배열들 내에서 크기 순으로 정렬하고, 이웃한 2개의 배열을 합쳐서 또 정렬한다. 이를 모든 배열들이 합쳐져 원래 크기의 배열의 길이가 될 때까지 반복한다. 3. 이때, 정렬은 다음과 같은 방식으로 진행한다. ex) arr[0~3] arr[4~7]을 비교하여 정렬 시. arr[0]와 arr[4]를 비교하고 작은 수를 먼저 temp[0~7]라는 임의의 배열의 temp[0]에 넣는다. 그 수가 만약 arr[0]이었다면, 다음엔 arr[1]과 arr[4]를 비교한다. 이런 식으로, 두 배..
유클리드 호제법의 기능부터 살펴보자면 2개의 자연수에 대해서 최대공약수(GCD)를 구하고 이를 바탕으로 최소공배수(LCM)를 구할 수 있다. 두 수 A, B에 대해서 큰수 A를 작은 수 B로 나누는데 이때 나머지가 0이면 작은 수가 최대공약수이다. 만약 나눠떨어지지 않으면 B를 A/B의 나머지로 다시 나눈다. 이때 나눠 떨어지면 A/B의 나머지가 최대공약수가 된다. 이 과정을 나눠떨어질 때까지 반복을 하는데 간단히 보자면 두 수를 서로 나누는 과정을 나눠떨어질 때까지 반복하고 나눠떨어질 때 나누는 수가 최대공약수가 된다. 유클리드 호제법을 간단히 예시를 통해 풀이해보자면... 1. 다음과 같이 두 수가 주어진다. 231, 84 2. 이 두 수를 유클리드 호제법을 이용하면 231를 84로 나누면 나머지는 ..
출처 : https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 1. 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 2. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 5 5 2 3 4 1 3. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 1 2..
[정렬 방법] 전체(n개의 값)에서 arr[1], arr[2], ..., arr[n-1] 순으로 기준값(key)으로 두고 바로 왼쪽 값부터 왼쪽에 있는 값들이 key보다 클 경우 한칸씩 오른쪽으로 옮긴다. 작을 경우엔 멈추고 비교대상이던 값의 오른쪽에 key값을 넣어준다. 이 과정을 arr[n-1]까지 진행하면 정렬된다. [정렬 과정] n 크기의 임의의 배열 arr에서 - 1번의 비교 arr[1] 값을 key값으로 둔 후, arr[0]와 비교해서 key값이 작으면 arr[1] = arr[0], arr[0] = key, key값이 크면 arr[1] = key - 최대 2번의 비교 arr[2] 값을 key값으로 둔 후, arr[1]와 비교해서 key값이 작으면 arr[2] = arr[1]로 한 후 (1), ..
[정렬 방법] 전체(n개의 값)에서 가장 왼쪽 이웃한 두 값부터 오른쪽 끝까지 비교하는데 왼>오이면 swap, 아닐 경우 continue한다. 이후 가장 max값을 픽스하고 나머지 값에 대해 이 과정을 진행,... 마지막으로 남은 두 값을 비교하고서 정렬하면 정렬이 완료된다. [정렬 과정] n 크기의 임의의 배열 arr에서(이때, 코드에서 key는 min과 max로 작성하였음.) - n-1번의 비교 arr[0]과 arr[1]을 비교 후 ( arr[0] > arr[1] )이면 arr[0]과 arr[1] swap, ( arr[0] arr[2] )이면 arr[1]과 arr[2] swap, ( arr[1] arr[n-1] )이면 arr[n-2]과 arr[n-1] swap, ( arr[n-2] arr[1] )이면..
정렬 방법 전체(n개의 값)에서 가장 큰 값을 맨 오른쪽 값과 바꾸고, 그 다음엔 맨 오른쪽 칸을 제외한 나머지 값들 중 가장 큰 값을 맨 오른쪽값과 바꾸고, ... 이렇게 바꾸는 과정을 진행하다가 마지막으로 2개가 남으면 그 둘을 비교 후 정렬하면 정렬이 완료된다. 정렬 과정 n 크기의 임의의 배열 arr에서(이때, 코드에서 key는 min과 max로 작성하였음.) - n-1번의 비교 arr[0]의 인덱스 값을 key값으로 둔 후, arr[key]와 arr[1] 비교 후 큰 값의 인덱스 값을 key에 넣고, arr[key]와 arr[2] 비교 후 큰 값의 인덱스 값을 key에 넣고, ... arr[key]와 arr[n-1] 비교 후 큰 값의 인덱스 값을 key에 넣는다. 그 후, 그 arr[key]와 ..
현재 만든 웹페이지에 인터랙션을 활성화시켜보자. 1) 네비게이션 바 기능을 한번 구현해보도록 하자. react-router-dom (네비게이션을 만들어주는 패키지) 을 사용해보도록 하자. 먼저 다음 명령어로 react-router-dom을 설치하자. npm i react-router-dom 2) src에 components와 routes라는 이름의 폴더를 하나씩 만들자. 이후 Movie.css, Movie.js 파일을 components폴더로 옮겨주자. 3) routes폴더에는 Home.js와 About.js라는 파일을 만들어서 2개의 라우터를 생성하자. Home.js는 영화를 보여주는 페이지이고 About.js는 영화 하나에 대한 about페이지가 될 것이다. Home.js의 기능은 현재 우리가 App..
코드를 Cloud에 올릴 것임. 1) 다음 명령어로 gh-pages를 설치함. gh-pages는 웹사이트를 github의 github page 도메인에 나타나게 해준다. npm i gh-pages 2) package.json에 다음과 같이 homepage를 추가함. "homepage": "https://yoondj98.github.io/movie_app/" 3) build를 run해서 build폴더를 생성하고 우리는 그 폴더를 github에 올릴 것임. 다음과 같이 build를 실행하면 build폴더를 생성할 수 있음. 이것을 deploy의 이전 과정인 predeploy에 설정해줄 것임. package.json의 scripts에 deploy와 predeploy를 추가함. npm run build "scr..