본문 바로가기

분류 전체보기137

[Flutter][React Native] 작동 원리 & 차이점 1. Flutter 작동 원리 플러터는 구글에서 만든 cross-platfrom 프레임워크로, Dart 언어를 사용한다. 다른 네이티브 언어는 OS에 바로 렌더링하라 요구하는데 반에, Flutter는 Flutter Engine을 거쳐서 작동한다. ** 여기서 렌더링이란, 코드를 2D화면에 나타내는 작업 네이티브 언어나 RN은 OS에서 렌더링을 하지만, Flutter는 Flutter Engine에서 렌더링을 한다. 그래서 React Native와는 달리 어느 OS에서든 화면이 같다. 다만 flutter 자체 UI를 사용하기 때문에, 이를 손수 Native 코드로 바꾸기 어렵다는 단점이 있다. 이 때문에 Flutter는 iOS, Android, MacOS, Web(JS), 임베디드까지 작동하는 cross-p.. 2024. 2. 7.
[디자인 패턴] MVC, MVP, MVVM 참고 https://beomy.tistory.com/43 [디자인패턴] MVC, MVP, MVVM 비교 웹 개발자로 일을 하면서 가장 먼저 접한 디자인패턴이 바로 MVC 패턴이었습니다. 그만큼 유명하고 많이 쓰이는 디자인패턴인 MVC 패턴과 MVC 패턴에서 파생되어져 나온 MVP 패턴과 MVVM 패턴을 이야 beomy.tistory.com 0. 배경 및 목표 역할을 나눠서 유지보수와 개발을 하자! 캡슐화, 가상화, 응집도는 높이고 결합도는 낮춤 개발할 때, input/output이 명확하고 모듈 간 역할이 정해져 있기 때문에 개발하기 편하고 다른 사람이 알아보기도 쉽다 역할이 구분되어 있기 때문에, 어디서 문제가 발생했는지 비교적 쉽게 찾을 수 있다. 1. MVC 역할 Model : 데이터, 데이터 처리.. 2024. 2. 5.
백준 s2 11501 주식 c++ https://www.acmicpc.net/problem/11501 11501번: 주식 입력의 첫 줄에는 테스트케이스 수를 나타내는 자연수 T가 주어진다. 각 테스트케이스 별로 첫 줄에는 날의 수를 나타내는 자연수 N(2 ≤ N ≤ 1,000,000)이 주어지고, 둘째 줄에는 날 별 주가를 나타 www.acmicpc.net 풀이 가장 최대로 수익을 얻으려면, 항상 고점에서 팔아야 한다. max값이 나올 때까지 주식을 하나씩 사다가, max값이 나오면 그때 다 판다. 또, 남은 주식들 중 max값이 나올 때까지 주식을 하나씩 사다가 max값이 나오면 그때 다 판다. 처음에는 앞에서부터 팔려고 했으나, 남은 기간 중 max값을 구하기 어려워 뒤에서부터 시작했다. 만약 max값보다 가격이 낮다면, 그 주식을 .. 2024. 1. 26.
백준 g5 2170 선 긋기 c++ https://www.acmicpc.net/problem/2170 2170번: 선 긋기 첫째 줄에 선을 그은 횟수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 다음 N개의 줄에는 선을 그을 때 선택한 두 점의 위치 x, y (-1,000,000,000 ≤ x < y ≤ 1,000,000,000)가 주어진다. www.acmicpc.net 문제 설명 선을 x~y까지 N개 그을 수 있다. 그어진 선 길이의 총합 구하기 단, 겹쳐진 선은 구분할 수 없다. 풀이 시작점을 기준으로 정렬을 하고, 만약 겹치는 구간이 있다면 포함시키면서 한 덩어리(?)를 확장시켜 나간다. 겹치는 구간이 끝나면 이미 정렬된 상태니까 그 덩어리는 끝난 것이므로 새로운 선에서 다시 시작한다. 처음에는 강의실 문제처럼 끝 점을 기준으.. 2024. 1. 26.
백준 s2 1541 잃어버린 괄호 c++ https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 풀이 처음에는 괄호를 한 번만 칠 수 있는 줄 알고 이걸 어떻게 그리디로 풀지 .. 고민했으나 괄호는 그냥 마음대로 칠 수 있는 거였다. 괄호를 제한없이 칠 수 있으면, -뒤에 오는 숫자들에 괄호를 쳐서 최대한 많이 빼주면 최솟값이 될 거라 예상할 수 있다. -뒤에 오는 +들에 괄호를 치면 -를 분배한 것들과 같다. 다음 -가 오기전까지 +들을 묶어서 빼줄 값이 최대가 되도록 하면 된다. 코.. 2024. 1. 25.
백준 s4 11399 ATM c++ https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 풀이 총 걸리는 시간 = 각 사람들의 출금 시간 + 기다리는 시간 이때, 각 사람들의 출금 시간은 정해져 있으므로, 기다리는 시간을 최소로 하면 된다. 기다리는 시간을 최소로 하는 방법은 출금 시간이 짧은 사람들부터 순서대로 하는 것이다. /*boj s4 11300 ATM*/ #include #include #define MAXN 1005 using namespace std; int N; int arr[MAXN]; int ma.. 2024. 1. 25.
백준 s4 1026 보물 c++ https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 풀이 A, B 두 배열을 곱해서 구할 수 있는 최솟값은 B의 가장 큰 수에 A의 가장 작은 수를 곱하는 것이다. B는 재배열하면 안 된다고 했지만 A의 순서를 마음대로 바꿀 수 있기 때문에 사실상 상관 없음 A, B 둘다 정렬해준 후 가장 큰 수*가장 작은 수 끼리 곱해주면 된다. 전체 코드 /*boj g4 1920 수 찾기*/ #include #include #define MAXN 55 .. 2024. 1. 25.
백준 s4 2217 로프 c++ https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 풀이는 여기 참고 https://blog.encrypted.gg/975 /*boj s4 2217 로프*/ #include #include #define MAXN 100005 using namespace std; int N; int w[MAXN]; int main(void) { ios::sync_with_stdio(0); cin.tie(0); cin >> N; for (int i = 0; .. 2024. 1. 25.
백준 p5 19235 모노미노도미노 c++ https://www.acmicpc.net/problem/19235 19235번: 모노미노도미노 모노미노도미노는 아래와 같이 생긴 보드에서 진행되는 게임이다. 보드는 빨간색 보드, 파란색 보드, 초록색 보드가 그림과 같이 붙어있는 형태이다. 게임에서 사용하는 좌표 (x, y)에서 x는 행, www.acmicpc.net 문제 설명 전반적인 내용은 모노미노도미노 2와 같다(https://kyj0032.tistory.com/40). 달라진 점은 행이 삭제될 때, 중력의 영향을 받아 블록들이 밑으로 내려온다는 것 1. 이때 2*1이나 1*2 크기의 블록들은 하나로 쳐서, 한 칸만 밑으로 내려오는 경우는 없다. 2. 또한, 지워야 할 행이 2줄 이상일 때는 한 줄 지우고 떨어뜨리고 한 줄 지우고 떨어뜨리고 .. .. 2024. 1. 24.