목록분류 전체보기 (255)
Deff_Dev
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이DP를 이용하여 풀었다. 점화식dp[i][j] = dp[i - 1][j] + dp[i][j - 1]; 물 웅덩이(-1) 일 땐 계산하지 않았다.#include using namespace std;int dp[101][101] = {0,};int solution(int m, int n, vector> puddles) { for (int i = 0; i
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이키패드는 정해져있기 때문에 0 ~ 9, #, * 의 좌표를 저장한다. Left는 #(10), Right는 *(11)에서 시작한다. 1, 4, 7을 누를 땐 Left, 3, 6, 9를 누를 땐 Right로 누르고 현재 엄지 손가락 위치를 저장한다.2, 5, 8, 0을 누를 땐, 현재 손가락 위치에 따라 가장 가까운 쪽의 엄지 손가락으로 누른다.#include #include using namespace std;int dial [12][2] = {{4,2},{1,1},{1,2},{1,3},{2,1},{2,2..
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이이 문제는 상황에 맞게 정렬하여 풀이했다. 일단 pair 벡터에 정리할 파일들의 좌표를 저장한다. 저장한 후, 드래그 시작 좌표와, 끝 좌표를 구한다. 드래그 시작Y 좌표→ Y축으로 오름차순 정렬 후, 0 번째 좌표의 Y값X 좌표 → X축으로 오름차순 정렬 후, 0 번째 좌표의 X값 드래그 끝Y 좌표→ Y축으로 내림차순 정렬 후, 0 번째 좌표의 Y + 1값X 좌표→ X축으로 내림차순 정렬 후, 0 번째 좌표의 X + 1값 순서대로 answer에 Push 해주고 Return#include #inclu..
문제 https://www.acmicpc.net/problem/1461풀이이 문제는 그리디 문제로, 절댓값이 가장 큰 책을 마지막에 갖다놓는(0으로 안돌와도 됨) 방법으로 풀이했다. 음수, 양수 값을 나눠서 벡터에 저장(음수는 양수로 변환하여 저장)하고, 절댓값이 가장 큰 값을 저장한다.각 벡터를 내림차순 정렬한다.idx 번째 값의 * 2 한 값을 sum에 더하고 idx + m하는 과정을 벡터의 크기 만큼 반복한다.이때, 가장 큰 값이 존재하는 벡터일 경우, 왕복 값이 아닌 편도 값을 먼저 더한 뒤, 3번 과정을 반복한다.#include#include#include// https://www.acmicpc.net/problem/1461using namespace std;vector plusVec;vec..
문제 https://www.acmicpc.net/problem/1058풀이직접적인 친구를 먼저 찾고 해당 친구의 겹지인을 탐색하는 방법으로 풀이했다. #include// https://www.acmicpc.net/problem/1058using namespace std;bool isFriend[51][51] = { false, };bool isCheck[51][51] = { false, };int main() { int n; cin >> n; char input; for (int i = 1; i > input; if (input == 'Y') { isFriend[i][j] = true; } } } int maxCount = -1; for (int i = 1; i
문제 https://www.acmicpc.net/problem/11724풀이BFS를 이용해 모든 노드를 탐색하고 연결 요소의 개수를 구하는 방법으로 풀이했다.#include#include#include// https://www.acmicpc.net/problem/11724using namespace std;int N, M;vector vec[1001];bool visited[1001] = { false, };void BFS(int startPos) { queue q; q.push(startPos); visited[startPos] = true; while (!q.empty()) { int target = q.front(); q.pop(); for (int i = 0; i > N >> M; int s..
문제 https://www.acmicpc.net/problem/1916풀이이 문제는 시작 지점에서 도착지점까지의 최소비용 구하는 문제로, 다익스트라, 우선순위 큐를 이용하여 풀이했다. 우선순위 큐는 가중치가 낮은 노드 먼저 탐색(그리디)하여 최소 거리를 효율적으로 찾기 위해 사용했다. #include#include#include// https://www.acmicpc.net/problem/1916#define INF 1e9using namespace std;int N, M, startPos, endPos;vector > vec[1001];void Dijk() { vector dist(N + 1, INF); priority_queue, vector>, greater>> pq; dist[startPos] ..
문제 https://www.acmicpc.net/problem/15654풀이next_permutation() 을 이용하여 조합을 구하고 해당 조합에서 순열을 구한 값들을 저장하고 오름차순으로 정렬한 후, 출력하는 방법으로 풀이했다.#include#include #include // https://www.acmicpc.net/problem/15654using namespace std;int main() { int n, m, sel; cin >> n >> m; vector vec (n); vector combination (n, true); vector> answer; for (int i = 0; i > vec[i]; } for (int i = 0; i combinationValues; for (in..