알고리즘

문제 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 리뷰 예전에 한 번 풀어봤던 문제인데, 파이썬 공부 하다가 흥미로운 풀이 법을 발견해서 C++로도 한번 구현해봤다. 간단히 요약하자면 1. 각 숫자를 문자열로 바꾼다. 2. 바꾼 문자열을 세번 반복해서 벡터에 저장한다. 3. 벡터를 오름차순으로 정렬한다. 왜 하필 세 번 반복하나? 두번만 반복해도 프로그래머스에서 기본 제공하는 테스트 케이스는 통과한다. 하지만 채점에서는 빨간불이 막뜨는데 이유..
12904번: A와 B 수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수 www.acmicpc.net 정방향이 아닌 역방향으로 생각하면 쉽다. 글자를 조합해서 하나의 단어로 만드는 것 대신 단어에서 한 글자씩 빼는 방식이 더 쉽고, 메모리 효율도 좋음. #include #include #include using namespace std; int main(int argc, char const *argv[]) { ios_base ::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); ..
문제 코딩테스트 연습 - 타겟 넘버 리뷰 2021년 8월 12일 총 소요시간 : 1시간 16분 (정답) 어렵진 않았는데 풀이 할 때 좀 비효율 적이었다. 내 코드 #include #include #include using namespace std; void init_allNumbers(vector &numbers, vector &edge) { int i = 0; for (auto num : numbers) { edge[i++] = num; //양수 edge[i++] = -num; // 음수 } } void init_adjList(vector &adjList, vector &edge) { for (int i = 0; i < edge.size(); i += 2) { vector v2; v2.push_back..
문제 코딩테스트 연습 - 모의고사 https://programmers.co.kr/learn/courses/30/lessons/42840 리뷰 @2021년 8월 12일 총 소요시간 : 40분(정답) 난이도에 비해 구현이 너무 오래걸렸다. 모범답안 int they_max = *max_element(they.begin(),they.end()); 이부분이 진짜 예술이다.. max_element는 iter를 리턴하므로 *을 붙여서 그 값을 int they_max에 저장하도록 한다. #include #include #include using namespace std; vector one = {1,2,3,4,5}; vector two = {2,1,2,3,2,4,2,5}; vector thr = {3,3,1,1,2,2..
가을맛
'알고리즘' 카테고리의 글 목록