Make Unreal REAL.
article thumbnail
Level 0. 세 개의 구분자

Level 0. 세 개의 구분자 C스타일 strtok() 함수를 이용해 해결했는데, 쓸데없이 번거롭게 푼 것 같다. #include #include #include #include using namespace std; vector solution(string myStr) { vector answer; const char *str = myStr.c_str(), *delim = "abc"; char *s = new char[strlen(str) + 1], *p; copy(str, str + strlen(str) + 1, s); p = strtok(s, delim); while (p) { answer.emplace_back(p); p = strtok(nullptr, delim); } delete s; retu..

article thumbnail
Level 0. 문자열 여러 번 뒤집기

Level 0. 문자열 여러 번 뒤집기 #include #include #include using namespace std; string solution(string my_string, vector queries) { for (vector& query : queries) reverse(my_string.begin() + query[0], my_string.begin() + ++query[1]); return my_string; }

article thumbnail
Level 0. 전국 대회 선발 고사

Level 0. 전국 대회 선발 고사 1번부터 오름차순으로 배치하기 위해 map에 모든 순위와 참석 여부를 넣고 시작했다. 참석 여부는 true인 경우 인덱스를, false인 경우 -1을 넣어 구분했다. 이후, 앞에서부터 참석한 인원이 3명이 될 때까지 계산하면 된다. #include #include #include using namespace std; int solution(vector rank, vector attendance) { int answer = 0, cur = 0; int arr[] = {10'000, 100, 1}; size_t size = rank.size(); map mp; for (int i = 0; i < size; ++i) mp[rank[i]] = attendance[i] ? i..

article thumbnail
Level 0. 빈 배열에 추가, 삭제하기

Level 0. 빈 배열에 추가, 삭제하기 for문을 사용하지 않고 vector::insert(), vector::erase() 함수를 사용해도 된다. #include #include using namespace std; vector solution(vector arr, vector flag) { size_t size = arr.size(); vector answer; for (int i = 0; i < size; ++i) { if (flag[i]) { vector v(arr[i] * 2, arr[i]); answer.insert(answer.end(), v.begin(), v.end()); } else { answer.erase(answer.end() - arr[i], answer.end()); } }..

article thumbnail
Level 0. 정수를 나선형으로 배치하기

Level 0. 정수를 나선형으로 배치하기 인덱스 계산이 상당히 귀찮았던 문제였다. #include #include #include using namespace std; vector solution(int n) { vector answer(n, vector(n)); int num = 1; int r = 0, c = -1; for (int j = 0; j < n; ++j) answer[r][++c] = num++; while (true) { if (--n

article thumbnail
Level 0. 배열 만들기 6

Level 0. 배열 만들기 6 스택을 활용하는 문제다. #include #include using namespace std; vector solution(vector arr) { vector answer; for (int e : arr) if (answer.empty() || answer.back() != e) answer.emplace_back(e); else answer.pop_back(); return answer.empty() ? vector{-1} : answer; }

검색 태그