본문 바로가기

코딩테스트 문제풀이

(16)
[백준 16234] 인구 이동 #include #include #include #include #include using namespace std; static int idSel; static int unionCnt; class Country { public: int id; int people; public: Country() { id = -1; people = 0; idSel = 0; unionCnt = 0; } void setId(int _id) { id = _id; } int getId() { return id; } void setPeople(int _people) { people = _people; } int getPeople() { return people; } bool isUnion(Country &cntr, const i..
[백준 1969] DNA #include #include #include using namespace std; int main() { int N, M; cin >> N; cin >> M; string* str = new string[N]; char ch_n; char ch_o = NULL; int cnt_n = 0; int cnt_o = -1; //첫번째 값은 무조건 비교하기 위함. string sol = ""; int result = 0; for (int i = 0; i > str[i]; } for (int i = 0; i
[백준 1026] 보물 #include #include #include #include #include using namespace std; int main(void) { vector A; vector B; int N; int n; cin >> N; for (int i = 0; i > n; A.push_back(n); } for (int i = 0; i > n; B.push_back(n); } sort(A.begin(), A.end()); sort(B.begin(), B.end()); int result = 0; for (int i = 0; i
[백준 1439] 문제 풀기 (그리디) #include #include #include using namespace std; int main() { int len; int cnt0 = 0; int cnt1 = 0; bool flag = false; string cards; cin >> cards; len = cards.length(); //0을 1로 바꾸어보자 for (int i = 0; i < len; i++) { if (cards[i] == '0') { if(flag == false) cnt0++; flag = true; } else if(cards[i] == '1') { flag = false; } } flag = false; //1을 0로 바꾸어보자 for (int i = 0; i < len; i++) { if (cards[i] == ..
[백준 1969] 문제 풀기 (그리디) #include #include #include using namespace std; int main() { int N, M; cin >> N; cin >> M; string* str = new string[N]; char ch_n; char ch_o = NULL; int cnt_n = 0; int cnt_o = -1;//첫번째 값은 무조건 비교하기 위함. string sol = ""; int result = 0; for (int i = 0; i > str[i]; } for (int i = 0; i < M; i++) { for (int j = 0; j < N; j++) { ch_n = str[j][i]; if (ch_n == ch_o) continue; for (int k ..
[백준 5585] 문제 풀기 (그리디) #include #include #include using namespace std; int main() { const int pair = 1000;//1000 고정. int charge;//잔돈(charge가 아니라 change.. 영어 잘못썼네요) int money;//손님이 낸 돈 int change[] = { 500, 100, 50, 10, 5, 1 }; const int size = 6; int cnt = 0; //잔돈 계산 cin >> money; charge = pair - money; //횟수 누적 for (int i = 0; i < size; i++) { if (change[i]
[백준 11399] 문제 풀기 (그리디) #include #include #include using namespace std; void solution(vector arr) { int len = arr.size(); int total = 0; //스왑 for (int i = 0; i arr[j]) { arr[i] ^= arr[j] ^= arr[i] ^= arr[j]; } } } //0에서 지목된 인덱스까지의 값을 모두 더함 for (int i = 0; i > num; arr.push_back(num); ..
[백준 11047] 문제 풀기(그리디) #include #include #include using namespace std; void solution(int N, int K, vector list) { int len = list.size() - 1;//배열의 끝에서부터 탐색 (문제는 오름차순으로 이미 정렬된 배열임.) int ind = len;//인덱스 위치 선택자 int cnt = 0; while (K > 0) { if (list[ind] N; cin >> K; for (int i = 0; i > coin; list.push_back(coin); } //입력을 모두 마치고 함수 호출 solution(N, K, list); } 13분 03초 코딩을 최대한 빠르게 하였습니다 사실 기록용이기도 하고 본보기가 되기에는..