목록코딩테스트 (91)
Deff_Dev
문제 https://www.acmicpc.net/problem/2156풀이이 문제는 DP를 이용하여 풀이했다. 점화식dp[i-1] : i번째 잔을 마시지 않는 경우 (최댓값이 아니라면 무한으로 건너 뛸 수 있기 때문에)dp[i-2] + grapes[i] : i번째 잔을 마시고, i-1번째 잔을 마시지 않는 경우dp[i-3] + grapes[i-1] + grapes[i] : i번째와 i-1번째 잔을 마시고, i-2번째 잔을 마시지 않는 경우#include// https://www.acmicpc.net/problem/2156using namespace std;int grapes[10001] = {0};int dp[10001] = {0};int main() { int n; cin >> n; f..
문제https://www.acmicpc.net/problem/1026풀이a는 오름차순 b는 내림차순한 후, 0 ~ n 번째까지 곱하여 최소 값을 만들었다.#include#include#include// https://www.acmicpc.net/problem/1026using namespace std;bool cmp(int a, int b) { return a > b;}int main() { int n; cin >> n; vector a(n); vector b(n); for (int i = 0; i > a[i]; } for (int i = 0; i > b[i]; } sort(a.begin(), a.end()); sort(b.begin(), b.end(), cmp); int sum = 0; for (int..
문제 https://www.acmicpc.net/problem/2583=풀이N * M 크기의 맵에 입력된 직사각형 영역을 1로 채운 다음 BFS를 이용하여 비어 있는 영역의 갯수와 크기를 구했다#include#include#include#include// https://www.acmicpc.net/problem/2583using namespace std;int M, N, K;int map[101][101] = { 0, };bool visited[101][101] = { false, };int dx[4] = { 1,-1,0,0 };int dy[4] = { 0,0,1,-1 };vector answer;void BFS(pair startPos) { queue> q; q.push(startPos); visite..
문제 https://www.acmicpc.net/problem/1253풀이이 문제는 이분 탐색 문제로, 입력된 숫자들을 오름차순으로 정렬한 후, 좋은 숫자의 갯수를 구하는 방법으로 풀이했다.#include#include#include// https://www.acmicpc.net/problem/1253using namespace std;int main() { int n; cin >> n; vector vec(n); for (int i = 0; i > vec[i]; } sort(vec.begin(), vec.end() ); int count = 0; for (int i = n - 1; i >= 0; i--) { int left = 0, right = n - 1, target = vec[i]; whil..
문제 https://www.acmicpc.net/problem/1421 풀이나무의 길이를 내림차순으로 정렬한 후, 모든 길이로 잘랐을 때, 금액을 부르트포스로 풀이했다. 반례계속 3%에서 실패가 나와, 모든 반례를 찾아봤지만, 전부다 정답이었다.문제를 다시 확인해보니 총 금액이 int 범위를 넘어 갈 수 있을거 같다고 생각했고, maxPrice의 데이터 형태를 int가 아닌 long long으로 변경했더니 맞았다.#include#include#include// https://www.acmicpc.net/problem/1421using namespace std;int n, c, w;bool cmp(int a, int b){ return a > b;}int main() { cin >> n >> c >> w..
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.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..