Study_Cat

꾸준히 공부하는 고양이가 될게요.

끊임없는 노력은 천재를 이긴다.

2024/06 6

[알고리즘 문제] 31063번 - Candy Cane Feast

출처 : https://www.acmicpc.net/problem/31063 해당 문제는 풀이가 굉장히 짧기에 포스팅이 짧지만, 교훈이 매우 중요할 것 같습니다. 1. 접근 과정 문제를 대충 보아하니 O(NM) 으로 TLE가 발생할 것 같다는 느낌이 든다. 따라서 어떤 알고리즘을 사용해서, 어떤 아이디어를 사용해서 최적화할 수 있을까? 를 관점으로 계속 생각하였다.  이전에 포스팅했던 SegmentTree 중 Lazy 하지 않더라도 연산 횟수가 제한된 경우의 문제를 떠올리며 입력의 최댓값을 보아하니 가망이 없겠구나... 싶었다. long long 타입까지 가능성이 있기에 고민하던 중 2^63 이라는 숫자 중 지수 부분을 활용하고자 생각하였고 문제 메커니즘을 다시 살펴보니 맨 앞의 소는 항상 먹을 수 밖에..

코딩/알고리즘 2024.06.26

[웹 개발] React + Express(Nodejs) 연동하기

해당 포스팅은 Window 에서 진행하였습니다. 1. 프론트앤드 / 백앤드가 햇갈려요! 많이 착각하는 부분이 React와 Express 서버에 관한 내용입니다. 만약 React 프로젝트를 생성했다면 React 서버가 따로 존재할 것이며, Express를 이용하여 Server를 따로 만든다면 Express서버가 따로 존재하게 됩니다. 개발하는 단계에서는 React와 Express 서버를 연결해줘야 합니다. 배포하는 단계에서는 npm build를 통해 하나의 서버로 합쳐주면 됩니다.  ReactExpress서버Nodejs 서버 사용Express를 이용해 커스텀마이징작업화면에 나타날 UI 및 로직 제작API 제작 및 프로토콜 통신 제어 백앤드 공부 참고 블로그(다른분) : https://velog.io/@ys..

코딩/웹 개발 2024.06.26

[전산수학I] Least-Squre-Method 최소 오차 (feat. 선형변환)

가우스 소거법이나 역행렬 혹은 여러 factorization 을 사용하여 Ax = b의 해를 구하고자 노력했습니다. 하지만 일반적으로 해가 존재하지 않는 경우가 훨씬 많습니다. 이러한 경우에 orthogonal 개념을 이용하여 최소 오차를 구하고자 합니다! 1. 정사영 ( 배경 지식 ) 만약 b가 Col A 에 속하지 않다면 해는 존재하지 않습니다. 따라서 b는 아니지만 Col A에 속하는 원소 중, b와 거리가 가장 작은 값을 선택해야 합니다. 해당 포스팅에선 b hat 이라고 명명하겠습니다.  중학교에서 배웠듯이 가장 짧은 거리는 "직선" , "수직" 의 특성을 띈 수선입니다. 그렇다면 b hat은 어떻게 구할 수 있을까요? 해당 내용은 아래 글을 참고해주세요.  [전산수학I] Orthogonal의 ..

[알고리즘 개념] Query 문제 테크닉 Mo's 알고리즘

Mo's 알고리즘 이란?구간 질의하는 Query 문제에서 업데이트되지 않는 특수한 상황에서 사용할 수 있는 알고리즘으로 기존의 구간 쿼리는 O(NM)인 반면 Mo's 를 사용하면 O(M sqrt N) 으로 줄일 수 있습니다.  아이디어데이터가 추가적으로 업데이트되지 않는다면, 모든 쿼리에 대해서 항상 전체를 탐색해줄 필요는 없습니다. 이 전에 계산한 구간의 값을 참고하여 답을 구할 수 있습니다.   일단 데이터 길이를 N으로 했을 때 sqrt(N) 의 길이로 그룹을 나눕니다. 위 그림은 N = 10 일때의 그림이며 4개의 구간으로 나눌 수 있습니다. ( 왜 sqrt(N) 으로 나누는지는 아래에 설명하겠습니다 )  만약 위처럼 3가지 쿼리가 주어졌다고 할 때 어떻게 작동하는지 간략하게 그림으로 보고 자세히..

코딩/알고리즘 2024.06.04

[solved.ac] 플래티넘2 달성 소감과 과정, 앞으로의 계획

드디어 플래티넘2에 도착했습니다... 눈치가 빠르신 분은 알아챘을 수도 있습니다. 플3 포스팅을 안한 것과 뒤의 저 프로필이 의미하는 바가 무엇인지.. 플3 찍고 나중으로 포스팅을 미뤘다가 어느세 50%정도 채워져서 그냥 포스팅하지 않았습니다. 그리고 뒤의 프로필을 수열과 쿼리를 여러 문제를 풀면 주는건데... 넴, 세그 트리가 대량으로 과제로 나와서 본의 아니게 날먹했습니다.  티어가 실력을 전부 나타내진 않는다 어느정도 티어를 쌓으면서 위의 말이 공감되기 시작했습니다. 예전에는 티어 올리는 재미로, 티어를 목적으로 공부한 반면 지금은 알고리즘을 공부하기 위해 공부하고, 티어는 그 추가적인 결과물이라고 생각합니다.  예전에는 실버나 골드 하위 문제는 그냥 넘기는 버릇이 있었는데, 이제는 일단 풀어야겠습..

코딩/알고리즘 2024.06.04

[C/C++] 포인터 완벽 이해 ( 포인터, 배열, 상수, 다중포인터 )

오늘은 C언어를 입문하는 사람에게 가장 어렵다고 소문난 포인터를 쉽게 이해할 수 있도록 설명해보겠습니다. 잘 이해되지 않는 부분은 댓글로 남겨주세요. 연산자 ( 배경지식 )&(변수 이름) = 해당 변수의 주소*(주소) = 해당 주소의 값 int a = 10; printf("a의 주소 = %d\n",&a); printf("해당 주소의 값 = %d", *(&a)); /// a의 주소 = 6422044 ( 사용자 마다 다름 ) /// 해당 주소의 값 = 10  변수 ( 배경지식 )모든 변수와 값은 메모리의 어딘가에 저장되며 저장된 위치를 가르키는 것이 주소이다. 예를 들면 int a = 5; 라고 할 때 사용자가 편히 사용할 수 있도록 그냥 a만 사용하면 되지만 컴퓨터 내부에..

코딩/C, C++ 2024.06.02