[백준/boj] 9996번 : 한국이 그리울 땐 서버에 접속하지 | C++
·
백준 문제풀이
문제 : https://www.acmicpc.net/problem/9996 주요 사항1. 예시에 나오는 패턴의 접두,접미사 개수가 각각한개씩이다. 그치만 문제에서는 접두접미사가 여러단어일 수 도 있다고 말해두었다. 그러므로 접두접미사를 저장할 때, char로 저장해서는 안된다 2. 패턴의 접두 + 접미사 를 더한 길이가 입력받은 문자열의 길이보다 크다면, 해당 문자열은 패턴을 포함할 수 없다는 뜻이므로 DA를 출력해야한다 풀이 코드#includeusing namespace std;int n;string p;//패턴string sP,eP;//시작 패턴, 종료패턴int main(){ ios::sync_with_stdio(0); cin.tie(0); cin>>n; cin>>p; ..
[백준/boj] 2309번: 일곱 난쟁이 | C++
·
백준 문제풀이
0. 문제https://www.acmicpc.net/problem/2309기존에 풀어봤던 문제인데, 다시 풀어보게 되었습니다.1. 문제풀이 핵심n이 9로 10 이하이기 때문에 무지성 재귀를 사용해도 괜찮습니다. ㅎㅎ 하지만 재귀에 대한 이해를 통해 조금 더 효율적인 코드를 작성할 수 있습니다.함수 종료 조건을 잘 걸어줘야 합니다. 답을 찾고 출력한 후에도 재귀가 계속 돌아가면 불필요한 연산이 이루어집니다.2. 문제풀이에 사용된 개념재귀를 사용한 조합 생성: 9명 중 7명을 골라야 한다는 것은, 9명 중 2명을 빼면 된다는 것과 같습니다. 이를 위해 누적합을 사용하여 두 명의 인덱스를 선택하는 방식을 사용했습니다.next_permutation을 이용한 조합 생성: 이 라이브러리를 사용하여 순열을 만드는 방..
개인 프로젝트 | 00 _ 개인 프로젝트 아키텍처
·
프로젝트
프로젝트를 시작한다 노력하고 집중하는 것을 힘들어하는 사람들이 매일 꾸준히 (포기하지 않고)성장할 수 있도록 도와주는 서비스이다! 언어프론트엔드 : Typescript백엔드 : Python 프레임워크웹서버, Reverse Proxy 서버 :  Nginx  웹 : Next.js / 앱 : React Native with Expo - 처음에는 무조건 어플리케이션으로 만들려고 했지만, 웹환경을 사용하고자 하는 이유는 핸드폰을 드는 순간 집중이 방해되는 개인적 경험때문. 유튜브에서 정신과 의사분들도 집중을 어려워하는 분들에게 핸드폰은 침대에 두고, 침대를 항상 등지고 생활하라고 말하신다고 하여 공부, 일을 수행하는 컴퓨터에서 언제 어디서든 가볍게(중요) 접근성좋게 사용할 수 있도록 웹으로 구현하고자 한다서버 :..
M1 VSCode에서 C++의 'bits/stdc++.h' 헤더 파일 불러오기 오류 해결 과정
·
기타
bits/stdc++.h란?C++ 표준 라이브러리의 여러 헤더 파일들을 한꺼번에 포함하는 비표준 헤더 파일입니다. 주로 코테에서 코드 작성 시간을 단축하기 위해 사용됩니다. 이 헤더 파일은 모든 c++ 표준 헤더 파일을 포함하기 때문에, 개발자가 여러 개의 헤더 파일을 일일이 #include할 필요 없이 한 번에 모든 표준 라이브러리를 사용할 수 있어 코드 작성 시간을 단축해주고, 헤더를 잘못 가져오는 등의 실수를 방지 때문에 유용하게 쓰입니다비공식 헤더 파일이므로, GCC 컴파일러에서만 기본적으로 제공됩니다. Clang이나 MSVC 같은 다른 컴파일러에서는 이 헤더 파일이 기본적으로 포함되지 않으며, 직접 생성해야 사용 할 수 있습니다. mac의 경우 clang 을 사용하여 cpp파일을 컴파일하므로 역..
presigned url을 이용하여 S3에 이미지 업로드하기 (+ S3버킷 접근 권한 을 관리하는 몇가지 방법들)
·
프로젝트
이번엔 Canva앱을 만들어보게 되었습니다간단히 설명하면 "[내 얼굴 사진]을 올리고 [중세시대 기사]라는 프롬프트를 작성하면 [중세시대 기사인 나]의 사진을 만들어주는 서비스" 입니다. Canva 앱이니까 언제든 접근되어야하고 여러 사용자를 대상으로 오래 구동될 서비스입니다.  즉, 불특정 다수의 사용자가 브라우저에서 S3 버킷으로 이미지를 업로드해야하는 서비스 입니다 S3버킷 접근 권한 관리 방법(기본적으로 S3 퍼블릭 엑세스 차단 설정을 깔고 갑니다)우선 결론부터 말하자면 다음과 같습니다. 결론.   [ S3 pre-signed url + CloudFront 로 S3 접근 권한 관리 ] : aws에서 권장하는 방식presigned url을 가진 사용자는 인증된 사용자로서 s3 접근(파일 업로드,다운..
[백준/boj] 1991번: 트리 순회 | C++
·
백준 문제풀이
요약 : c++로 이진 트리, 트리 순회 구현하기(재귀 구조 활용) 알고리즘 설계 수업에서 이진트리 순회(전위 순회, 중위 순회, 후위 순회)를 구현하는 실습문제가 주어졌다! 근데 못풀었다! (ㅜ.ㅜ) 제출은 못했지만 공부는 할 수 있으니까! 백준에 같은 문제가 있어서 풀어보려한다~ 목차 ( 클릭하면 이동! 👈🏻)0. 문제 1. 문제풀이 핵심 2. 문제풀이에 사용된 개념 3. 문제풀이 코드 3-1. 코드 로직 설명 4. 마무리0. 문제https://www.acmicpc.net/problem/1991 1991번: 트리 순회첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A..
[백준/boj] 1043번: 거짓말 | C++
·
백준 문제풀이
dfs - 그래프 풀듯이 벡터로 만든 리스트 형식 사용 (정석풀이는 아니라고 함. 정석은 유니온 파인드? 아직 모르는 알고리즘이라 공부해야겠다!) 1. 진실을 아는 사람들 번호 -> knowMem 스택에 담고, 방문처리(vis[번호] =1;) 2. [멤버별 속해있는 파티] 와 [파티별 속해있는 사람들] 을 리스트형식 벡터 배열로 선언 3. [멤버별 속해있는 파티]배열을 돌면서 [파티별 속해있는 사람들] 배열을 돌아(이중for문) 3-1) vis[멤버번호] ==0 -> 스택에 담아, vis =1; 4. 진실 아는 사람이 속한 파티 번호들을 set에 저장하여 최종으로 m-set배열사이즈 로 답 구함 stack knowMem;//처음에 진실 알고있던사람 번호, 그로인해 진실 새로 알게된 사람 번호 저장 vec..
[백준/boj] 11501번: 주식 | C++
·
백준 문제풀이
재귀 - 시간초과 #include #include using namespace std; int t; long long val[1000002];//날별 주가 int valNum; long long profit; void func(int str){ if(str>=valNum-1) return; int maxIDX= max_element(val+str,val+valNum)-val; //맥스값의 인덱스 받음 if(maxIDX==str) { func(maxIDX+1); return; } long long maxNum = val[maxIDX]; for(int i =str;i 그날 이전 기준으로 그것보다 벨류가 낮은날에는 다 사고 아닌날에는 가만히. 가장 높은 고점날 팔기// //현재+1부터 마지막까지 가장 높은 고..
[프로그래머스] 여행경로 | c++
·
프로그래머스 문제풀이
1번 테케 실패한 코드 (엉망징창) 직접 추가한 테스트 케이스 (모두 성공) 1) [["ICN", "JFK"], ["JFK", "IAD"], ["IAD", "JFK"], ["JFK", "HND"]] & ["ICN", "JFK", "IAD", "JFK", "HND"] 2) [["ICN", "JFK"], ["JFK", "IDD"], ["IDD", "JFK"], ["JFK", "ICN"]] & ["ICN", "JFK", "IDD", "JFK", "ICN"] 3) [["ICN", "JFK"], ["JFK", "IAD"], ["IAD", "JFK"], ["JFK", "IAD"]] & ["ICN", "JFK", "IAD", "JFK", "IAD"] 4) [["ICN", "BOO"], ["ICN", "COO"], [..
[백준/boj] 1992번: 쿼드트리 | C++
·
백준 문제풀이
분할정복 문제 재귀 연습 문제 실수한 부분 - 문자열로 주어지는 걸 int 이중배열로 받으려고 해서 헤맴 #include #include #include using namespace std; // 0 = 흰색, 1= 검정 int n; char board[65][65]; vector ans; void func(int row, int col, int size){ char cur = board[row][col]; bool devide = false; for(int i =row;i