본문 바로가기

전체 글137

백준 s1 11286 절댓값 힙 c++ https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 문제 배열에 정수 x (x ≠ 0)를 넣는다. 배열에서 절댓값이 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다. 절댓값이 가장 작은 값이 여러개일 때는, 가장 작은 수를 출력하고, 그 값을 배열에서 제거한다. N개의 x가 주어지고, x가 0이면 절댓값이 가장 작은 값을 출력하고 제거, 그렇지 않으면 큐에 x를 넣는다. 풀이 priority_queue는 기본적으로 최대 .. 2024. 3. 13.
백준 s2 1927 최소 힙 c++ https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 문제 배열에 자연수 x를 넣는다. 배열에서 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다. 기능을 수행하는 최소 힙을 구현하면 된다. N개의 숫자 x가 들어온다. x가 0이면 최솟값을 출력하고 그 값을 배열에서 제거한다. 그렇지 않으면 x를 큐에 삽입한다. 풀이 템플릿은 https://github.com/encrypted-def/basic-algo-lecture/blob.. 2024. 3. 13.
[React] React Hook 정의 함수형 컴포넌트에서도 life cycle, state 관리를 할 수 있게 해주는 함수 이전의 React는 class형 컴포넌트로 life cycle, state 관리를 해왔다. Hook이 도입되며 함수형 컴포넌트에서도 state, life cycle 관리를 할 수 있게 되었으며 React는 개념적으로 함수에 더 가깝기 때문에, class 대신 함수형 + hook을 권장하고 있다(공식문서) 동기 (기존의 문제점) 1. 컴포넌트들 사이에서 상태로직 재사용하기 이전에 class형 컴포넌트에 상태 로직이 종속적이었기 때문에 (constructor, componentDidMount 등) 컴포넌트의 계층이 깊어질수록 코드가 복잡해졌음. => useState 같은 React Hook은 계층의 변화 없이 상태 관.. 2024. 3. 12.
백준 g1 19700 수업 c++ https://www.acmicpc.net/problem/19700 19700번: 수업 키가 188cm, 154cm인 학생들을 한 팀으로, 키가 180cm, 161cm인 학생들을 한 팀으로, 키가 172cm인 학생을 혼자 팀으로 묶으면 총 3개의 팀을 구성할 수 있다. 더 적은 갯수의 팀으로 학생들을 묶을 수 있 www.acmicpc.net 문제 N명의 학생의 키 H, 최소 등수 Ki가 주어진다. 학생들은 팀원 중에 자신보다 키가 큰 사람이 Ki명 이상이면 수업을 거부한다고 한다. 최소 몇 개의 팀을 짤 수 있는가? 풀이 아이디어를 생각해내기도 정말 어려웠던 문제이다. 결국 답지를 찾아봤음 핵심은 학생들의 키와 등수에 연연하지 말고 팀원 수에 신경 쓰는 것 키를 내림차순으로 정렬한 후에 팀에 차곡차곡 쌓.. 2024. 3. 12.
백준 g2 21944 문제 추천 시스템 Version 2 c++ https://www.acmicpc.net/problem/21944 21944번: 문제 추천 시스템 Version 2 recommend, recommend2, recommend3 명령이 주어질 때마다 문제 번호를 한 줄씩 출력한다. 주어지는 recommend, recommend2, recommend3 명령어의 총 개수는 최소 1개 이상이다. www.acmicpc.net 문제 문제 추천 시스템 Version 1(https://kyj0032.tistory.com/85)의 업그레이드버전 N개의 추천 문제 리스트가 주어진다. 각각 문제번호 P, 난이도 L, 알고리즘 분류 G를 가지고 있다. M개의 명령어가 주어진다. recommend G x x==1이면 알고리즘이 G인 문제 중 난이도가 가장 높은 문제, 문제 .. 2024. 3. 12.
CSRF, XSS, CORS https://evan-moon.github.io/2020/05/21/about-cors/ 사용자가 피싱 링크 클릭 -> 사용자의 계정(자동 로그인)으로 은행에게 돈 송금하라는 요청 보냄 대응 기법 Refferer: 백엔드 단에서 승인된 도메인으로만 요청시에 처리하도록 함 Safety token: 사용자 세션에 임의의 난수값을 지정하고 요청이 들어오면 대조해본다 XSS (Cross Site Scripting) 관리자가 아닌 권한이 없는 사용자가 웹 사이트에 스크립트를 삽입하는 공격 기법 ex) 해커가 웹사이트에 악의적인 스크립트 삽입(ex. 전자 게시판) -> 게시판을 열람한 사용자의 브라우저에서 스크립트가 실행되어 쿠키 탈취 -> 세션 하이재킹 CSRF는 인증된 세션이 필요하고 그걸 가지고 공격을 하지.. 2024. 3. 12.
프로그레시브 웹 앱(PWA, Progressive Web App) 정의 똑같이 모바일 기기에서 네이티브 경험을 제공한다는 점에서는 웹 앱과 동일함 그러나 오프라인(캐싱) 접속, 푸시 알람 등 기존의 웹 앱이 할 수 없었던 네이티브 기능까지 수행할 수 있는 웹 앱 웹 앱과의 차이점 1. 웹 앱 매니페스트(Web App Manifest), 홈 화면 추가 앱 스토어를 거치지 않고 홈 화면에 설치할 수 있는 웹사이트 기존의 웹 앱은 브라우저를 켜서 접속해야 했음 2. Service Worker를 통한 캐싱 가능 -> 이를 통해 오프라인에서도 동작 가능 3. 푸시 알림 + 카메라, 마이크 등 모바일 기기 자체 기능도 사용 가능 장점 1. 네이티브 수준의 개발 가능 - 물론 모든 기능은 구현할 수 없지만 유사한 경험까진 가능 - 네이티브 언어를 알지 못해도 네이티브의 기능을 구현.. 2024. 3. 11.
네이티브 앱, 하이브리드 앱, 웹 앱 네이티브 앱 안드로이드 SDK나 iOS SDK로 제작한 앱 ex. 카카오톡, 유튜브, 인스타그램 장점 성능이 좋음. (가장 플랫폼에 밀착, 모바일 전용 언어로 개발) 네이티브 API 호출 가능 단점 플랫폼이 제한적 플랫폼 마다 따로따로 개발해야 함 -> 시간, 비용 많이 듦 언어 고정 웹 앱 모바일 브라우저로 열어서 쓰는 앱, 모바일웹보다 모바일에 최적화되어있음 SPA로 네이티브 앱의 느낌을 줄 수 있음 장점 다운받지 않아도 쉽게 접근 가능 모든 기기와 브라우저에서 접근 가능(운영체제 상관 X) 별도로 설치 / 승인이 필요없어 유지보수가 용이함 단점 플랫폼 API 사용 불가능, 브라우저 API만 가능 친화적 터치 X 아무래도 웹으로 개발하는 거다 보니 네이티브보다는 좀 떨어짐 하이브리드 앱 기본 기능은 .. 2024. 3. 11.
백준 g3 23326 홍익 투어리스트 c++ https://www.acmicpc.net/problem/23326 23326번: 홍익 투어리스트 도현이는 홍익 투어리스트가 되어 홍익대학교를 견학하려고 한다. 홍익대학교는 $N$개의 구역이 원형으로 배치된 모습이다. $1$번 구역에서 시계 방향으로 각각 $2$번, ... , $N$번 구역이 존재하고, www.acmicpc.net 문제 홍익대학교에는 1~N개의 원형 구역으로 나뉘어져있다. N개의 구역 중 명소인 곳이 1, 아닌 곳이 0으로 주어진다. 도현이의 위치는 1에서 시작한다. Q개의 쿼리가 주어진다. 1 i : i번 구역이 명소면 명소에서 삭제, 명소가 아니면 명소로 추가 2 x : 도현이가 시계방향으로 x칸 이동한다 3 : 도현이가 시계방향으로 이동할 때 명소로 가려면 최소 몇 칸을 움직여야 하.. 2024. 3. 11.