⭐ 코딩테스트
[프로그래머스 C++] 숫자 변환하기
[프로그래머스 C++] 숫자 변환하기
2023.11.01[프로그래머스 C++] 숫자 변환하기 https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결방안 BFS DP 처음 시도한 코드 - DFS 시간초과 #include #include #include using namespace std; int answer=INT_MAX; int cnt; void DFS(int x, int y, int n, int cnt) { if(x == y){ answer = min(answer, cnt); return; } e..
[백준 1806번 C/C++] 부분합
[백준 1806번 C/C++] 부분합
2023.10.31[백준 1806번 C/C++] 부분합 https://www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N > n ..
[백준 2470번 C/C++] 두 용액
[백준 2470번 C/C++] 두 용액
2023.10.30[백준 2470번 C/C++] 두 용액 https://www.acmicpc.net/problem/2470 해결방안 투 포인터 처음 시도한 코드 #include #include #include using namespace std; struct Solution { int first, second, ave; Solution(int a, int b, int c) { first = a; second = b; ave = c; } bool operator> n; v.resize(n); for(int i=0; i> v[i]; } sort(v.begin(), v.end()); int left = 0; int right = n - 1; while (left < right) { int sumSol = v[left] + v[..
[백준 3273번 C/C++] 두 수의 합
[백준 3273번 C/C++] 두 수의 합
2023.10.29[백준 3273번 C/C++] 두 수의 합 https://www.acmicpc.net/problem/3273 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 www.acmicpc.net 해결방안 투 포인터 알고리즘 코드 #include #include #include using namespace std; int n, x; vector a; int answer; int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin..
[백준 11054번 C/C++] 가장 긴 바이토닉 부분 수열
[백준 11054번 C/C++] 가장 긴 바이토닉 부분 수열
2023.10.28[백준 11054번 C/C++] 가장 긴 바이토닉 부분 수열 https://www.acmicpc.net/problem/11054 11054번: 가장 긴 바이토닉 부분 수열 첫째 줄에 수열 A의 크기 N이 주어지고, 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ Ai ≤ 1,000) www.acmicpc.net 해결전략 가장 긴 증가하는 부분 수열 종류의 문제 코드 #include #include using namespace std; int n; // 수열의 길이 vector v, dpF, dpB; // 입력 받을 수열, 앞에서부터의 가장 긴 증가하는 부분 수열, 뒤에서부터의 가장 긴 감소하는 부분 수열 int main(){ ios::sync_with_stdio(..
[프로그래머스 C++] [1차] 프렌즈4블록
[프로그래머스 C++] [1차] 프렌즈4블록
2023.10.27[프로그래머스 C++] [1차] 프렌즈4블록 https://school.programmers.co.kr/learn/courses/30/lessons/17679 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 구현 코드 #include #include #include using namespace std; vector v; int solution(int m, int n, vector board) { int answer = 0; // 제거된 블록의 개수를 저장할 변수 v = board; while (true) { vector coor; // 2x2 블록..
[백준 1269번 C/C++] 대칭 차집합
[백준 1269번 C/C++] 대칭 차집합
2023.10.25[백준 1269번 C/C++] 대칭 차집합 https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net 해결전략 map 코드 #include #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int a, b, sum = 0; cin >> a >> b; map m; for (int i = 0..
[프로그래머스 C++] 롤 케이크 자르기
[프로그래머스 C++] 롤 케이크 자르기
2023.10.25[프로그래머스 C++] 롤 케이크 자르기 https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 처음 시도한 코드 #include #include #include using namespace std; map myMap; // key: 토핑의 종류, value: 위치 int cnt; // 전체 토핑의 종류 vector v; int solution(vector topping) { for(int i = 0; i < topping.size(); i..
[프로그래머스 C++] [3차] 파일명 정렬
[프로그래머스 C++] [3차] 파일명 정렬
2023.10.24[프로그래머스 C++] [3차] 파일명 정렬 https://school.programmers.co.kr/learn/courses/30/lessons/17686 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 문자열, substr isupper tolower 코드 #include #include #include #include using namespace std; struct File{ string head; int number; string tail; int index; // 입력 순서 File(string a, int b, string c, in..
[프로그래머스 C++] 오픈채팅방
[프로그래머스 C++] 오픈채팅방
2023.10.23[프로그래머스 C++] 오픈채팅방 https://school.programmers.co.kr/learn/courses/30/lessons/42888 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 문자열 map sstream, stringstream -->> 사용하려면 #include 을 선언해야 한다. 코드 #include #include #include #include #include using namespace std; map idNname; // ID와 닉네임을 등록하는 map vector index; // 입장과 퇴장을 기록하는 배열 ve..
[백준 1929번 C/C++] 소수 구하기
[백준 1929번 C/C++] 소수 구하기
2023.10.22[백준 1929번 C/C++] 소수 구하기 https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 해결전략 소수 구하기 코드 #include using namespace std; int arr[1000001]; int main() { int m, n; cin >> m >> n; for (int i = 2; i
[프로그래머스 C++] 전력망을 둘로 나누기
[프로그래머스 C++] 전력망을 둘로 나누기
2023.10.19[프로그래머스 C++] 전력망을 둘로 나누기 https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 완전탐색 DFS 코드 #include #include using namespace std; vector adj; // 각 노드의 인접 노드를 저장 vector ch; // 각 노드가 속한 서브트리의 크기를 저장 // DFS 함수. 현재 노드와 이전에 방문한 노드를 인자로 받는다. void DFS(int curr, int prev = -1) { ..