Make Unreal REAL.
article thumbnail
Level 1. 부족한 금액 계산하기

Level 1. 부족한 금액 계산하기 #include #include using namespace std; long long solution(int price, int money, int count) { return max(0, price * count * (count + 1) / 2 - money); }

article thumbnail
Level 1. 신규 아이디 추천

Level 1. 신규 아이디 추천 디버깅이 수월하도록 각 단계를 함수로 나눴다. string은 다양한 자료구조 함수를 지원하기 때문에 문자열보다는 자료구조처럼 활용했다. step3()에서 unique() 함수를 저렇게 활용하면 연속된 문자를 제거할 수 있다. #include #include #include using namespace std; void step1(string& s) { transform(s.begin(), s.end(), s.begin(), [](char c) { return isalpha(c) ? tolower(c) : c; }); } void step2(string& s) { auto it = remove_if(s.begin(), s.end(), [](char c) { return !..

article thumbnail
unique()를 활용한 연속된 값의 제거

unique가 실행될 때 각 원소는 자신의 양 옆 원소와 비교하여 중복을 제거한다. 그러므로 연속값 제거가 아니라 중복 제거를 원한다면 정렬된 상태에서 사용해야 한다. O(n)에 수행된다. 버블 정렬과 비슷한 방식이며 뒤로 몰아 놓은 중복 원소들의 시작 지점 반복자를 반환한다. #include #include #include using namespace std; void print(vector v); void main() { vector v{5, 4, 1, 1, 1, 3, 2, 2, 7, 6, 6, 8}; cout

article thumbnail
Level 1. 크레인 인형뽑기 게임

Level 1. 크레인 인형뽑기 게임 큐의 배열을 이용해 인형 뽑기 머신을 클래스로 추상화시켜 해결했다. 어려운 문제는 아니었고 카카오에서 내는 시뮬레이션 문제 중에 재밌는 것들이 많은 것 같다. #include #include #include #include using namespace std; class ClawMachine { private: vector board; public: ClawMachine(vector& board) : board(vector(board.size())) { for (vector row : board) for (int i = 0; i board[i].emplace(row[i]); } int pull(int ..

article thumbnail
문자열에서 문자를 검색하는 strchr()

strchr()는 C 스타일 함수이기 때문에 string의 경우 c_str() 함수로 sz(String terminated w/ Zero) 형식으로 변환해주어야 한다. #include #include using namespace std; void main() { string s = "Hello World !!"; // "Hello World !!" 문자열에서 문자 'o'를 검색한다. if (strchr(s.c_str(), 'o') != nullptr) cout

article thumbnail
Level 1. 키패드 누르기

Level 1. 키패드 누르기 어렵지도 않고 보자마자 어떻게 구현해야 할지 감이 잡혀서 꽤 재밌는 문제였다. 이차원 좌표를 저장하는 Pos 구조체를 만들고 연산자 오버로딩을 이용해 각 번호의 거리를 계산하는 함수를 구현해 해결했다. #include #include using namespace std; struct Pos { int x; int y; int operator - (const Pos& p) { return abs(x - p.x) + abs(y - p.y); } }; Pos position(int key) { key = (key == 0) ? 11 : key; return Pos{--key % 3, key / 3}; } int distance(int x, int y) { return positi..

검색 태그