백준 문제풀이 10250번 문제 : ACM 호텔 문제 : 소스코드 : #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int t; int h, w, n; int result; cin >> t; for(int i=0; i> h >> w >> n; // 맨위층 if (n % h == 0) { result = n / h; result += h * 100; cout > n; cout a >> b; // a와 b 맨 앞에 "0" 넣기 a.insert(0, "0"); b.insert(0, "0"); // string a와 b의 길이 맞추기 , ex) 0524 02811 -> 005..
그리디 알고리즘에 대해 그리디 알고리즘 유형은 국내 알고리즘 교재에서 단어 그대로 번역하여 탐욕법으로 소개됩니다. 현재 상황에서 지금 당장 좋은 것만 고르는 방법을 의미합니다. 그리디 알고리즘은 기준에 따라 좋은 것을 선택하는 알고리즘이므로 문제에서 '가장 큰 순서대로', 가장 작은 순서대로'와 같은 기준을 알게 모르게 제시해줍니다. 대체로 이 기준은 정렬 알고리즘을 사용했을 때 만족시킬 수 있으므로 그리디 알고리즘 문제는 자주 정렬 알고리즘과 짝을 이뤄 출제됩니다. 지금 살펴볼 거스름돈 문제는 그리디 알고리즘을 대표하는 문제입니다. 그리디 알고리즘 문제 풀이 1번 - 거스름돈 문제 : 당신은 점원이다. 카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 무한이 존재한다고 가정..
백준 문제풀이 1712번 문제 : 손익분기점 문제 : 소스코드 : #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int a, b, c; cin >> a >> b >> c; // a + bx =c 면 손익분기점이 존재하지 않는다. int result; if ( b >= c ) { result = -1; } else { result = (a / (c - b)) + 1; } cout > n; // 2~7까지 1번, 8~19까지 2번, 20~37까지 3..
문자열에 대한 학습 문자들 아스키코드로 출력 : (int) 기본적인 형 변환 string -> int : stoi(x) char -> int : atoi(x) , x - '0' int -> char : (char)x stoi = string to int stof = string to float stol = string to long stod = string to double 대소문자 변환 대문자 -> 소문자 : +32 , tolower 소문자 -> 대문자 : -32 , toupper 문자열에서 숫자 구분해서 출력 for (int i = 0; i = '0' && s[i] s; vector v; for(int i=0; i
벡터에 대한 학습 벡터에서의 중복 제거 벡터에서의 중복 제거는 sort, unique, erase를 활용하면 구현 가능하다. sort와 unique는 algorithm 라이브러리에 포함되어 있다. unique 함수는 중복되지 않는 원소들을 앞에서부터 채워나가는 함수이다. 연속된 중복 원소를 vector의 제일 뒷부분 쓰레기값으로 보내버린다. unique가 끝났으면 반환되는 값은 vector의 쓰레기값의 첫 번째 위치가 된다. 이 때문에 unique 후에 바로 erase를 사용하면 되는 것이다. erase 함수는 vector 배열에서 특정 원소를 삭제하는 함수이다. v.erase(v.begin()+s, v.begin()+e) 일 경우 [s, e) 원소가 삭제된다. s는 포함, e는 미포함(열린 구간) 그러..
vector에 대한 학습 벡터에서 원소를 찾아 해당 인덱스를 반환하는 소스 코드 구현해보자 #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); vector v; vector::iterator it; v.push_back(5); v.push_back(9); it = find(v.begin(), v.end(), 9); if (it != v.end()) { cout