Algorithm
백준 2003 수들의합2 c++ // 투포인터 정석풀이
https://www.acmicpc.net/problem/2003 2003번: 수들의 합 2첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다.www.acmicpc.net1. 주의사항v.push_back(0);마지막에 0을넣어야 e++되면서 0을 가르킴 => out of index 방지 2. 전체코드#include using namespace std;typedef long long ll;ll n, m,ret,temp;vector v;int main() { ios::sync_with_stdio(0); cin.tie(0); cin ..
백준 1644 소수의연속합 c++ // 소수판별 알고리즘, 투포인터
https://www.acmicpc.net/problem/1644 1644번: 소수의 연속합첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 4,000,000)www.acmicpc.net1. 의사코드 및 전체코드// Authored by : BaaaaaaaaaaarkingDog// Co-authored by : -// http://boj.kr/ecc7d7f58ceb4679a1bb67adbb79088c#include using namespace std;const int MXN = 4000002;vector seive(MXN, true);//1.모두소수라고 가정vector primes;int main() { ios::sync_with_stdio(0); cin.tie(0); for (int i = 2; i *..
백준 1806 부분합 c++ // 투포인터, 누적합 구현방법
https://www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N st~en+1로 만드는 것) 2. total보다 S가 작으면, total 변수에 a..
백준 2230 수고르기 c++ // 투포인터 사용방법
https://www.acmicpc.net/problem/2230 2230번: 수 고르기 N개의 정수로 이루어진 수열 A[1], A[2], …, A[N]이 있다. 이 수열에서 두 수를 골랐을 때(같은 수일 수도 있다), 그 차이가 M 이상이면서 제일 작은 경우를 구하는 프로그램을 작성하시오. 예를 들어 www.acmicpc.net 1. 의사코드 /* * 투포인터 * 1.정렬 * 2.for(st=0~n) * 3. while(en범위쳌 && 조건만족안하면) en++ * 4. 정답갱신 */ en을 1칸씩 우측으로 옮겨가면서 탐색한다. 2. 전체코드 #include using namespace std; int n, m; int a[100004]; int ret = 0x7fffffff; /* * 투포인터 * 1..
프로그래머스 가장큰수 c++ // 문자열 커스텀정렬, 문자열 큰수 만드는방법, core dumped 해결방법
https://school.programmers.co.kr/learn/courses/30/lessons/42746# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문자열 큰수 만드는방법 bool cmp(string& s1, string& s2){ return s1+s2>s2+s1; } ex1) 3 30 330 > 303 -> true -> 자리안바꿈 ex2) 30 3 303 > 330 -> false -> 자리바꿈 2. core dumped 해결방법 return 타입을 확인하자. return 0 -> core dumped return "0" -> 정..
프로그래머스 베스트앨범 c++ // 벡터에 여러타입 넣는방법
https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 벡터에 여러타입 넣는방법 구조체선언 후, v.push_back({"1",1})하면 된다 2. 의사코드 2.1. {장르, 총플레이횟수} 저장 2.2. {플레이횟수, 장르, 인덱스} 저장 2.3. 플레이횟수기준 내림차순 정렬 2.4. 최대플레이장르에 대해 장르가같으면 push(idx), cnt>=2이상이면 다음장르 탐색 3. 전체코드 #include using namespace std; map ..
프로그래머스 가장 먼 노드 c++ // bfs, 이동거리체크는 bfs
https://school.programmers.co.kr/learn/courses/30/lessons/49189 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 의사코드 1.1. 인접벡터에 집어넣기 1.2. bfs 1.3. 최대거리 계산 1.4. for문 : 최대거리에 있는 노드들 카운팅 2. 전체코드 #include using namespace std; queue q; int visited[20004]; vector adj[20004]; int max_distance; int solution(int n, vector edge) { int answe..
프로그래머스 단어변환 c++ dfs ,백트래킹 // dfs 조건있는경우 해결방법
https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. dfs 조건있는경우 해결방법 check함수를 만들고 if(check) continue 하면된다! 2. 삽질과정 단어길이가 3고정인줄알고 check-> if(count==2) return 1 ; 하드코딩했다가 맞왜틀? 하였다... 3. 전체코드 #include using namespace std; int visited[54]; int n,answer, is_possible,word_size; ..