일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- map
- 티스토리챌린지
- 문자열
- 프로그래머스
- 분할정복
- 백준
- 이분탐색
- 에라토스테네스의 체
- 배열
- Sort
- 알고리즘
- 최소공배수
- int
- 다이나믹프로그래밍
- BFS
- 정렬
- 백트래킹
- 깊이우선탐색
- priority_queue
- stoi
- 오블완
- 유클리드호제법
- 우선순위큐
- C++
- DP
- vector
- Set
- DFS
- 그래프
- N과M
- Today
- Total
목록전체 글 (220)
안녕 세상아,
동적배열을 알아보기 전에 정적배열에 대해 간단하게 설명을 하면, 정적배열이란? 간단하게 말해 배열의 크기를 미리 설정하는 것이다. 프로그램 실행 시작 시 미리 정해놓은 배열의 크기만큼 기억공간이 할당된다. int array[3]={0,1,2}; //배열 크기 미리 설정 그에 반해 동적배열이란? 배열의 길이를 고정하지 않고 유동적으로 변경할 수 있다. 크기 할당할 때 기억공간이 배정되고, 시작 주소를 기억한다. 이때, 메모리 누수 방지를 위해 기억공간을 해제해야 한다. 메모리를 할당하기 위해 new 연산자를 사용해야한다. new 사용법: 타입* 변수명 = new 타입[크기]; int a; cin>>a; int* array=new int[a]; // 배열 형태 메모리 동적할당 for(int i=0; ..

문자열 입력의 종류는 여러가지가 있다. 우선 가장 많이 사용하는 것은 cin 이다. cin 문자와 문자열 모두 입력 받을 수 있음 하지만 공백과 엔터가 나오면 입력을 종료한 것으로 간주한다. 문장이나 띄어쓰기가 포함된 단어는 출력하지 못한다. #include #include using namespace std; int main(){ int a; string str; cin>>a>>str; cout

처음 정리하고 발표했는데 주어 목적어가 확실하지 않다고해서 다시 작성했다. 지금 보면 좀 많이 허접하긴하네..쩝 1, 2. 모바일에서 접속을 하게 되면 FCM Token을 발급해준다. 3. 모바일 -> AppServer에 요청을 하면서 UserID, FCM Token을 함께 보낸다. 4. HTTP POST 요청을 보낸다. 요청을 보낼 때 비밀키를 같이 보낸다. 여기서 비밀키는 access Token을 발급해달라고 증명하는 그런 느낌,,?임.. 5. FCM에서 AppServer에 accessToken을 보낸다. 6. FCM 요청을 보낼 때 accessToken을 포함시킨다. 7. 검증을 완료하면 FCM -> 모바일, 모바일에서 push 전송함! accessToken을 발급받기 위해 필요한 것은 1. OAu..
배열이란? 똑같은 자료형이 연속적으로 메모리에 할당되는 것이다. Index를 통해 특정한 자료에 접근한다. 예를 들어 학생 30명의 키를 데이터로 저장한다고 생각해보자. int student1 = 156; int student2 = 152; int student3 = 163; ... int student29 = 171; int student30 = 159; 위의 예와 같이 하나하나 입력해야 하는데 시간도 많이 들 것이고 여러가지로 비효율적이다. 배열을 사용하면 다 입력하는 것 보다 더 간단하게 구할 수 있다. c++에서 배열을 선언하는 문법은 다음과 같다. - 자료형 배열명[배열 크기]; 앞에서 예를 든 30명의 키를 저장하는 배열을 선언과 초기화를 하기 위해서는 다음과 같이 하면 된다. in..
기존 HTTP 프로토콜에서 FCM HTTP v1 API 로 변경하기 위해 FCM 관련해서 공부를 해봤다. FCM이란 GUI 기반으로 표현되는 메시지 요청 작성, 구현 도구이다. FCM을 유형으로 나누게되면 1. 알림 메시지: 키 모음이며 SDK에서 자동 처리된다. 또한 백그라운드에 있으면 알림 tray로 옮겨지고 백그라운드에 있을 때 중요한 정보를 제공한다. 2. 데이터 메시지: 키-값 쌍이며 클라이언트 앱에서 처리된다. 메시지는 포그라운드일 때 사용자 처리된다. 전송 옵션을 나누면 1. 축소형: 핑을 보냄, 최근 메시지만 의미가 있음, 성능면에서 뛰어남, 최대 4개까지 허용 2. 비축소형: 보통 메신저 앱에서 사용, 유용한 콘텐츠 전송, 모두 전송됨 우선 순위로 나누면 1. 보통 우선 순위: 앱이 켜져..
https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 유클리드호제법을 사용해서 최대공약수를 구했다. 최소공배수와 최대공배수의 곱은 두 수의 곱과 같기 때문에 최대공약수를 구하면 최소공배수는 간단하게 구할 수 있다. #include #include using namespace std; //두개씩 비교해서 결론 도달 -> 시간초과 안되겠지? //최소공배수는 유클리드호제법 사용? //최대공약수 유클리드호제법 사용 int gcd(int a, int b){ ..
https://www.acmicpc.net/problem/11722 11722번: 가장 긴 감소하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 30, 10, 20, 20, 10} 인 경우에 가장 긴 감소하는 부분 수열은 A = {10, 30, 10, 20, 20, 10} www.acmicpc.net 11053번 문제랑 같은 문제라고 생각하면 된다. dp를 이용해서 문제를 해결하였다. #include #include using namespace std; int arr[1001]; int dp[1001]; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie..
https://www.acmicpc.net/problem/11652 11652번: 카드 준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지 www.acmicpc.net map 함수를 이용하여 풀었다. map 함수를 완성시킨 후 vector에 옮겨서 정렬하였다. #include #include #include #include using namespace std; bool cmp(pair a, pair b) { //가장 많이 가지고 있는 정수 여러가지일 때 작은 것 출력 if (a.second == b.second) { return a.first < b.fir..
https://www.acmicpc.net/problem/9659 9659번: 돌 게임 5 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1,000,000,000,000) www.acmicpc.net 돌 게임 하나 풀면 쉽게 풀 수 있는 문제라고 생각한다. 조금만 나열해보면 규칙 바로 알 수 있을 것이다. 시간복잡도도 O(1) #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); long long int n; cin >> n; //돌은 1개 또는 3개 가져갈 수 있음 //마지막 돌을 가져가는 사람이 이김 if (n % 2 == 1) { cout
https://school.programmers.co.kr/learn/courses/30/lessons/42885# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 푸는 방법은 다양할 수도 있지만 투포인터로 풀었다. #include #include #include using namespace std; int solution(vector people, int limit) { int answer = 0; int head=0; int tail=people.size()-1; sort(people.begin(),people.end()); //투포인터로 풀기 whil..