본문 바로가기

C++14

[Algorithm] DFS 프로그래머스 92343번 양과 늑대 | C++ ※ 2022 KAKAO BLIND RECRUIMENT : 양과 늑대 코딩테스트 연습 - 양과 늑대 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2022.09.01 - [c++/DFS&BFS] - [Algorithm] DFS(Depth-First Search,깊이 우선 탐색) 프로그래머스 92342 [Algorithm] DFS(Depth-First Search,깊이 우선 탐색) 프로그래머스 92342 DFS란? 트리나 그래프에서 한 루트로 탐색하다가 특정 상황에서 최대한 깊숙이 들어가서 확인한 뒤 .. 2022. 9. 23.
[Algorithm] 구현 백준 14503 | C++ ※ 14503 로봇청소기 14503번: 로봇 청소기 (acmicpc.net) 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 문제 해결 TIP 청소를 안 한 구역 : 0 벽 : 1 청소를 이미 한 구역 : 2 문제 해결 풀이 현재 위치가 청소하지 않은 상태라면 청소하기 -> 청소기가 현재 위치하는 좌표에 청소했음을 나타내는 2로 표시 탐색 진행하기 -> 현재 바라보는 방향의 왼쪽부터 시작해서 4 방위 중에 청소하지 않은 공간이 있는지 확인 1번으로 돌아갈 지를 정하기 -> 2번에서 청소하지 않은 공간이 있었다.. 2022. 9. 23.
[Algorithm] 프로그래머스 합승택시-경유지포함 | C++ ※ [18회] E-PPER(기출) : 합승택시요금 [18회] E-PPER(기출) : 합승택시요금 - 구름LEVEL (goorm.io) 구름LEVEL 코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입니다. 기업에서 선호하는 C, C++, 파이썬(Python), 자바(Java), 자바스크립트(Javascript) 이 level.goorm.io 2022.09.09 - [c++/최단경로] - [Algorithm] 플로이드-워셜 알고리즘(Floyd-Warshall Algorithm) 백준 11404 [Algorithm] 플로이드-워셜 알고리즘(Floyd-Warshall Algorithm) 백준 11404 플로이드-워셜 알고리즘이란? 변의 가중치가 음이거나 양인.. 2022. 9. 16.
[Algorithm] DP 백준 11057 오르막 수 | C++ ※ 11057 오르막 수 https://www.acmicpc.net/problem/11057 11057번: 오르막 수 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수 www.acmicpc.net 문제 해결 TIP 수의 길이가 N일 때의 오르막 수의 개수를 한 번에 구하지 말고 이전에 구한 값을 활용해보자. 숫자의 길이와 일의 자리 수를 기준으로 오르막 수의 개수를 계속 저장하고, 활용하자. -> DP 알고리즘 문제 해결 풀이 dp[i][j] = 수의 길이가 i이고, 일의 자리 수가 j인 오르막 수의 개수 = (j보다 작은 수 o.. 2022. 9. 9.
[Algorithm] 벨만-포드 백준 11657 타임머신 | C++ ※ 11657 타임머신 https://www.acmicpc.net/problem/11657 11657번: 타임머신 첫째 줄에 도시의 개수 N (1 ≤ N ≤ 500), 버스 노선의 개수 M (1 ≤ M ≤ 6,000)이 주어진다. 둘째 줄부터 M개의 줄에는 버스 노선의 정보 A, B, C (1 ≤ A, B ≤ N, -10,000 ≤ C ≤ 10,000)가 주어진다. www.acmicpc.net #include #include #include using namespace std; typedef tuple tp; typedef long long ll; const int INF = 5e6; //최대 n-1개의 간선을 지나게 됨 -> n * (가중치 최대값) vector bellmanFord(int start,.. 2022. 9. 9.
[Algorithm] 플로이드-워셜 백준 11404 플로이드 | C++ ※ 11404 플로이드 https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net #include #include using namespace std; const int INF = 1e7; //최대 n-1개의 간선을 지나므로 n * (가중치 최대값) void floydWarshall(int n, vector &graph) { for (int k = 1; k > m; vector graph(n + 1, vector(n + 1, INF)); for (int .. 2022. 9. 9.
[Algorithm] 다익스트라 백준 1753 최단경로 | C++ ※ 1753 최단경로 https://www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가 www.acmicpc.net #include #include #include using namespace std; typedef pair ci; const int INF = 2e5; //최대 V-1개의 간선을 지나게 됨 -> V * (가중치 최대값) //다익스트라 vector dijkstra(int start, int v, vector &graph) { vector .. 2022. 9. 8.
[Algorithm] BFS 백준 7576 토마토 | C++ ※ 7576 토마토 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net #include #include using namespace std; typedef pair ci; int bfs(int n, int m, int cnt, vector &matrix, queue &que) { // 상, 하, 좌, 우 int dr[] = {-1, +1, 0, 0}; int dc[] = {0, 0, -1, +1}; int t = 0; // 현재 시.. 2022. 9. 8.
[Algorithm] DFS 프로그래머스 92342 양궁대회 | C++ ※ 92342 양궁대회 코딩테스트 연습 - 양궁대회 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr #include #include using namespace std; int maxDiff = 0; //최대 점수차 //최대 점수차와 현재 점수차가 동일한 경우 bool compare(vector ryan, vector &answer) { //작은점수부터 화살수를 비교 🠒 현재값이 작은점수에 화살수가 더 많다면 true for(int i = 10; i >= 0; i--) { if(ryan[i] > an.. 2022. 9. 1.