일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- DP
- 이분탐색
- C++
- Sort
- 백준
- 알고리즘
- 에라토스테네스의 체
- 깊이우선탐색
- 다이나믹프로그래밍
- 문자열
- 배열
- 티스토리챌린지
- 우선순위큐
- N과M
- DFS
- BFS
- 정렬
- 유클리드호제법
- 백트래킹
- priority_queue
- Set
- int
- stoi
- 오블완
- map
- vector
- 프로그래머스
- 최소공배수
- 분할정복
- 그래프
- Today
- Total
목록전체 글 (220)
안녕 세상아,
set_intersection ( 교집합 )- #include - set_intersection (start1, end1, start2, end2, output_it) -> output_it 은 결과 저장할 반복자. 보통 back_inserter 사용 set_union ( 합집합 )- #include - set_union (start1, end1, start2, end2, output_it) -> output_it 은 결과 저장할 반복자. 보통 back_inserter 사용 #include #include #include using namespace std;int main() { vector v1 = { 1, 2, 3, 4 }; vector v2 = { 3, 4, 5, 6 }; ve..
https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr1. 문자열에서 숫자 추출하기 (isdigit 사용)2. 한자리수만 있는거 아니니까 고려하기3. 추출한 숫자 unordered_map에 넣기4. 벡터 만들어서 map에 있는 것 넣기5. 정렬해서 answer에 넣기#include #include #include #include #include using namespace std;vector solution(string s) { vector answer; int num = 0; bo..
https://www.codetree.ai/missions/5/problems/place-more-than-3-ones/explanation 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.aidx, dy 사용해서 푸는 문제 연습중 #include using namespace std;int main() { int dx[4] = { 0,1,0,-1 }; int dy[4] = { 1,0,-1,0 }; int n; cin >> n; int arr[101][101]; for (int i = 0; i > arr[i][j]; ..
https://www.acmicpc.net/problem/4963 전형적인 dfs 문제인 것 같지만 조금 생각을 해야하는 문제인가..? 일단 나한테는 그럼.. dfs 함수가 있고, main함수 안에 dfs 함수 꼴이 있는데 둘은 차이가 있다. 1. dfs 함수는 시작점을 찾은 후 섬을 만드는 과정2. main함수의 2중 for문은 시작점을 찾는 과정이다. 여러개를 받아서 dfs를 구해야하기 때문에 reset이 필수적이다. #include #include #include using namespace std;int map[51][51];bool isVisited[51][51] = { false };//상하좌우 + 대각선int dx[8] = { -1,0,1,1,1,0,-1,-1 };int dy[8] = { ..
https://www.acmicpc.net/problem/2178 전형적인 bfs 문제이다. 1. graph, q는 bfs에서 쓰기 위해 정의한 벡터와 큐다.2. 입력값 넣을 2차원 벡터 정의3. 상하좌우 배열 dx, dy 선언4. 입력값 string으로 받아서 쪼개서 큐에 넣기5. bfs로 풀기#include #include #include #include using namespace std;int main() { int n, m; cin >> n >> m; //문제 해결을 위한 벡터, 큐 vector>graph(n, vector(m, 0)); queue> q; //입력값 넣을 벡터 vector> maps(n, vector(m, 0)); int dx[4] = { 0,0,-1,1 }; int dy[..
https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krbfs 문제이다. vector> graph(n, vector(m,0));--> 이 구문은 이미 왔던 길인지 확인하기 위해 2차원 벡터를 정의하고 모든 행열을 0으로 초기화한 것이다. 사실 bool isVisited로 구분할 수 있지 않을까 했지만 그렇게 되면 누적합을 구할 수 없게 돼서 다른 벡터를 하나 더 사용해야한다. #include#include using namespace std;int solution(vector > maps){ ..
DFS (깊이 우선 탐색)개념:DFS는 시작 노드에서 최대한 멀리 있는 노드까지 먼저 탐색하는 방식입니다.보통 재귀나 스택 (Stack) 자료 구조를 사용해 탐색하며, 모든 경로 탐색이나 연결 요소 찾기에 유용합니다.동작 원리:시작 노드 방문: 시작 노드를 방문하고, 인접한 노드를 재귀적으로 방문합니다.재귀로 탐색 진행: 방문하지 않은 인접 노드를 탐색하고, 각 노드에서 더 이상 방문할 노드가 없을 때까지 재귀 호출을 반복합니다.재귀 호출 종료: 모든 경로를 다 탐색한 후 재귀 호출이 종료되며 상위 노드로 돌아갑니다.DFS 알고리즘의 특징:깊이 우선 탐색을 수행하여 특정 경로가 존재하는지 확인할 수 있습니다.재귀 호출의 특성을 이용해 백트래킹 문제에서 유용하게 쓰입니다.보통 노드의 모든 연결 경로를 탐색..
BFS (너비 우선 탐색)개념:BFS는 시작 노드에서부터 가까운 노드부터 차례대로 탐색하는 방식이다.주로 최단 경로를 찾는 문제나, 레벨 순서 탐색이 필요한 문제에서 유용하게 사용된다.너비 우선 탐색에서는 큐 (Queue) 자료 구조를 사용하여, 먼저 방문한 노드를 기준으로 탐색을 진행한다.동작 원리:초기화: 시작 노드를 큐에 넣고, 방문 표시를 한다.큐에서 노드를 꺼내며 탐색: 큐에서 노드를 하나씩 꺼내며, 해당 노드와 인접한 노드를 모두 확인한다.인접 노드를 큐에 추가: 방문하지 않은 인접 노드를 큐에 추가하고, 방문 표시를 한다.반복: 큐가 빌 때까지 2번과 3번 과정을 반복한다.BFS 알고리즘의 특징:경로 길이 최적화: 가중치가 동일한 그래프에서 최단 거리를 찾을 수 있다.노드의 깊이 별 탐색: ..
https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AV7GLXqKAWYDFAXB&categoryId=AV7GLXqKAWYDFAXB&categoryType=CODE&problemTitle=&orderBy=INQUERY_COUNT&selectCodeLang=CCPP&select-1=3&pageSize=10&pageIndex=1 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com뭐 이런 이상한 규칙이 다 있담..규칙 생각하는데 한참 걸렸다. 더 간단한 방법도 있겠지만 나는 mid값 기준으로 위 아래로 나눠서 풀..
https://swexpertacademy.com/main/solvingProblem/solvingProblem.do?contestProbId=AV15FZuqAL4CFAYD&isPostMethod=Y&do_url=%2Fmain%2FsolvingProblem%2FsolvingProblem.do&categoryId=AV15FZuqAL4CFAYD&categoryType=CODE&&&&& SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com문제를 풀기 위해서는 문제를 이해해야된다. 이해가 잘 안돼서 한참 읽었던 것 같다. 간단하게 설명하면 암호화된 암호문을 숫자로 바꿔서 10의 배수가 맞는지 검증하면 된다. 문제에서 0부터 ..