⭐ 코딩테스트
[백준 3687번 C/C++] 성냥개비
[백준 3687번 C/C++] 성냥개비
2024.04.14[백준 3687번 C/C++] 성냥개비 https://www.acmicpc.net/problem/3687 3687번: 성냥개비 각 테스트 케이스에 대해서 입력으로 주어진 성냥개비를 모두 사용해서 만들 수 있는 가장 작은 수와 가장 큰 수를 출력한다. 두 숫자는 모두 양수이어야 하고, 숫자는 0으로 시작할 수 없다. www.acmicpc.net 해결전략 구현 동적계획법 Dynamic Programming, DP 정답코드 #include #include #include using namespace std; int t; // 테스트 케이스의 개수 int n; // 성냥개비의 개수 // int num[10] = { 2, 5, 5, 4, 5, 6, 3, 7, 6, 6 }; // 각 숫자를 만드는데 필요한 성냥개비..
[백준 14890번 C/C++] 경사로
[백준 14890번 C/C++] 경사로
2024.04.13[백준 14890번 C/C++] 경사로 https://www.acmicpc.net/problem/14890 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 해결전략 구현 정답 코드 #include #include using namespace std; int n, l; // n: 지도의 크기, l: 경사로의 길이 int answer; vector v; bool RoadCheckY(int y) // y번째 행에 대해 경사로를 설치할 수 있는지 검사 { vector ch(n, vector(n, false)); for (int i = 0; ..
[백준 8980번 C/C++] 택배
[백준 8980번 C/C++] 택배
2024.04.10[백준 8980번 C/C++] 택배 https://www.acmicpc.net/problem/8980 8980번: 택배 입력의 첫 줄은 마을 수 N과 트럭의 용량 C가 빈칸을 사이에 두고 주어진다. N은 2이상 2,000이하 정수이고, C는 1이상 10,000이하 정수이다. 다음 줄에, 보내는 박스 정보의 개수 M이 주어진다. M은 1이 www.acmicpc.net 해결전략 그리디 Greedy Algorithm 각 택배를 가능한 한 먼저 배달해야 하는 목적지 마을 순으로 정렬. 각 마을별 남은 용량 계산 트럭이 각 마을을 방문할 때마다 특정 용량만큼의 박스를 싣고 내린다. 이를 관리하기 위해 capacity 벡터를 사용하여 각 마을별로 남은 용량을 관리한다. 초기값은 트럭의 최대 용량인 c로 설정한다. ..
[백준 24337번 C/C++] 가희와 탑
[백준 24337번 C/C++] 가희와 탑
2024.04.09[백준 24337번 C/C++] 가희와 탑 https://www.acmicpc.net/problem/24337 24337번: 가희와 탑 일직선으로 다양한 높이의 건물들이 N개 존재합니다. 가희는 건물들의 왼쪽에, 단비는 건물들의 오른쪽에 있습니다. 일직선 상에 가희와 단비, 건물들은 아래와 같은 순서로 배치되어 있습니다. www.acmicpc.net 해결전략 그리디 Greedy Algorithm 가장 높은 빌딩의 높이 계산 int tallest = max(a, b); 가희와 단비 중 더 많은 건물을 볼 수 있는 사람이 볼 수 있는 가장 높은 건물의 높이를 결정한다. 이는 두 관점에서 공통적으로 보이는 가장 높은 건물이 된다. 건물 배치 가희와 단비 각각의 관점에서 볼 수 있는 건물들을 v1과 v2에 배치..
[백준 2931번 C/C++] 가스관
[백준 2931번 C/C++] 가스관
2024.04.08[백준 2931번 C/C++] 가스관 https://www.acmicpc.net/problem/2931 2931번: 가스관 www.acmicpc.net 해결전략 구현 정답코드 #include #include #include using namespace std; // 북서남동 int dirY[4] = { -1, 0, 1, 0 }; int dirX[4] = { 0, -1, 0, 1 }; int r, c; // r: 행 c: 열 vector v; // 격자판 pair Moscow, Zagreb; // 'M'과 'Z'의 위치 int resultY, resultX; // 누락된 파이프의 위치 struct Coor { int y, x, dir; }; void FindLostPipe() { // 누락된 파이프 부분을..
[프로그래머스 C++] 요격 시스템
[프로그래머스 C++] 요격 시스템
2024.04.05[프로그래머스 C++] 요격 시스템 https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 탐욕법. 그리디 Greedy Algorithm 회의실 배정 정답 코드 #include #include #include using namespace std; bool Compare(const vector& a, const vector& b) { if (a[1] == b[1]) // e가 같을 경우 s순서로 정렬 (이 부분 생략가능) return a[0]..
[백준 17825번 C/C++] 주사위 윷놀이
[백준 17825번 C/C++] 주사위 윷놀이
2024.04.03[백준 17825번 C/C++] 주사위 윷놀이 https://www.acmicpc.net/problem/17825 17825번: 주사위 윷놀이 첫째 줄에 주사위에서 나올 수 10개가 순서대로 주어진다. www.acmicpc.net 해결전략 백트래킹 Backtracking 이 문제는 풀지 못하고 다른 사람의 풀이를 보았다. 백트래킹 문제인건 인지하였지만 문제 조건을 세팅하는게 힘들었다. 주어진 숫자들을 다소 하드코딩하여 배열로 세팅하는 과정이 필요하였다. 아래와 같이 6개의 배열을 준비하여 사용한다. 이 부분이 생각하기 힘들었다. vector dice(10); // 주사위 눈금 vector player(4); // 4개의 말이 위치한 칸의 번호 vector location(34); // 각 칸에서 다음 칸..
[프로그래머스 C++] 등굣길
[프로그래머스 C++] 등굣길
2024.04.02[프로그래머스 C++] 등굣길 https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 동적계획법 Dynamic Programming 정답코드 #include #include using namespace std; int solution(int m, int n, vector puddles) { vector v(n + 1, vector(m + 1, 0)); for (int i = 0; i < puddles.size(); i++) { v[puddle..
[프로그래머스 C++] 조이스틱
[프로그래머스 C++] 조이스틱
2024.04.01[프로그래머스 C++] 조이스틱 https://school.programmers.co.kr/learn/courses/30/lessons/42860 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 그리디 Greedy Algorithm 결국 못 풀고 다른사람 풀이를 봤다.. 좌우 이동 생각하기 까다롭네.. 정답 코드 #include #include #include #include using namespace std; int solution(string name) { int answer = 0; // 상하 조작 횟수 int CursorMove = nam..
[백준 17136번 C/C++] 색종이 붙이기
[백준 17136번 C/C++] 색종이 붙이기
2024.03.26[백준 17136번 C/C++] 색종이 붙이기 https://www.acmicpc.net/problem/17136 17136번: 색종이 붙이기 과 같이 정사각형 모양을 한 다섯 종류의 색종이가 있다. 색종이의 크기는 1×1, 2×2, 3×3, 4×4, 5×5로 총 다섯 종류가 있으며, 각 종류의 색종이는 5개씩 가지고 있다. 색종이를 크 www.acmicpc.net 해결전략 백트래킹 Backtracking 구현 처음 시도한 코드 #include #include #include using namespace std; int answer; // 색종이 최소 개수 vector result(5, 0); vector v; queue Q; bool isSquare(int y, int x, int ny, int nx)..
[프로그래머스 C++] 숫자 블록
[프로그래머스 C++] 숫자 블록
2024.03.23[프로그래머스 C++] 숫자 블록 https://school.programmers.co.kr/learn/courses/30/lessons/12923 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 구현 처음 시도한 코드 #include using namespace std; long long Cal(long long k) { for(int i = 2; i * i < k; i++) { if(k % i == 0){ return k / i; } } return 1; } vector solution(long long begin, long long end) ..
[프로그래머스 C++] 혼자서 하는 틱택토
[프로그래머스 C++] 혼자서 하는 틱택토
2024.03.22[프로그래머스 C++] 혼자서 하는 틱택토 https://school.programmers.co.kr/learn/courses/30/lessons/160585 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 구현 정답코드 #include #include #include using namespace std; int solution(vector b) { int answer = 1; int SumBingGo_O = 0; // O 전체 빙고 수 int SumBingGo_X = 0; // X 전체 빙고 수 int black = 0; // O 개수 int w..