== [Steps/조현태] == === ëŠë‚€ì ë° ì„¤ëª… === ë˜ ì‹œê°„ì´ ë‚¨ì•„ì„œ.. ë˜ ê°„ë‹¨í•œê±° 하나.. ë˜ ì™œ ì•„ë¬´ë„ ì•ˆì™€ì•„ì•„!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! === 소스 === {{{~cpp #include <iostream> #include <Windows.h> #include <vector> using namespace std; bool IsCanResize(int* targetNumber) { if (*targetNumber == *(targetNumber + 1)) { if (((*(targetNumber - 1) == *targetNumber) || (*(targetNumber - 1) - 1 == *targetNumber)) && *targetNumber == *(targetNumber + 2)) { return TRUE; } } return FALSE; } int GetNumbersSize(vector<int>& initNumbers) { vector<int> makedNumbers; bool isChanged = FALSE; if (0 < initNumbers.size()) makedNumbers.push_back(1); for (register int i = 1; i < (int)initNumbers.size(); ++i) { if (i < (int)initNumbers.size() - 2 && IsCanResize(&initNumbers[i])) { makedNumbers.push_back(i + 1); ++i; isChanged = TRUE; } else makedNumbers.push_back(i); } if (isChanged) return GetNumbersSize(makedNumbers); return makedNumbers.size(); } void main() { int testCaseNumber; cin >> testCaseNumber; for (int i = 0; i < testCaseNumber; ++i) { int startNumber; int endNumber; cin >> startNumber >> endNumber; vector<int> initNumbers; for (register int j = startNumber; j < endNumber; ++j) { initNumbers.push_back(1); } cout << GetNumbersSize(initNumbers) << endl; } } }}} ---- [Steps]