성공 코드(내 코드) 문자열로 저장되어 있는 숫자를 v 벡터에 정수로 변환하여 넣는다. 선택해야 하는 숫자의 개수만큼 반복문을 돌린다. 총 n개를 뽑아야 한다고 가정하면, 1번째 숫자를 고를 때 뒤에 최소한 n-1개의 숫자가 남아있어야 한다. 뒤에 숫자가 n-1개가 남기 전까지 v 벡터를 탐색하며 가장 큰 숫자를 찾는다. 찾은 가장 큰 숫자를 answer에 string으로 변환하여 추가한다. 똑같은 방법으로 2번째 숫자를 고른다. 이 과정을 n개의 숫자를 모두 뽑을 때 까지 반복한다. 이때는 뒤에 최소한 n-2개의 숫자가 남아있어야 한다. #include #include #include using namespace std; string solution(string number, int k) { strin..
성공 코드(내 코드) people을 오름차순으로 정렬한다. 보트에 최대 2명이 탑승 가능하므로 최솟값 + 최댓값을 더해본다. 더해준 값이 limit을 넘으면 2명 탑승이 안되므로 맨 뒤의 사람은 혼자 타야한다. 한명 밖에 타지 못하면 맨 뒷사람을 가리키는 인덱스를 줄여준다. 더해준 값이 limit을 넘지 않으면 2명 탑승이 가능하다. 즉 맨 앞사람을 가리키는 인덱스를 하나 증가시키고 맨 뒷사람을 가리키는 인덱스를 하나 감소시킨다. 이 과정을 맨 앞사람을 가리키는 인덱스가 맨 뒷사람을 가리키는 인덱스보다 작거나 같은 동안 반복해준다. #include #include #include using namespace std; int solution(vector people, int limit) { int answ..
성공 코드(내 코드) survey를 탐색하며 choices가 3이하인 경우에는 survey의 첫번째 문자에 해당되는 인덱스를 찾아 벡터 st의 원소에 점수를 추가 choices가 5이상인 경우에는 survey의 두번째 문자에 해당되는 인덱스를 찾아 벡터 st의 원소에 점수를 추가 st를 탐색하며 i=0, 2, 4, 6인 경우 st[i]과 st[i+1] 중 큰 값을 가지는 원소가 나타내는 문자를 벡터 type를 통해 찾아 answer에 추가한다. #include #include #include using namespace std; string solution(vector survey, vector choices) { string answer = ""; vector st(8); vector type(8); ..
성공 코드(내 코드) 2차원 벡터 organize에 report의 내용을 정리한다. id_list의 사이즈만큼 n*n 2차원 배열 organize를 생성한다. 각각의 행과 열은 id_list의 인덱스 값에 해당되는 사람을 나타내고 행에 해당되는 사람이 누구를 신고했는지 해당 행의 원소들에 체크를 하게 된다. 0을 1로 바꿈으로써 체크가 이루어진다. 이렇게 함으로써 중복되는 신고는 한번으로 처리 가능하다. organize의 각각의 열을 탐색하며 k번 이상 신고된 자의 인덱스를 stopped 벡터에 추가한다. organize를 행마다 탐색하며 이때 cnt는 0이 된다. stopped가 체크되어 있으면 cnt를 증가시켜 메일을 받은 횟수를 증가시킨다. 그리고 해당 행의 탐색이 끝나면 answer 벡터에 cnt..
성공 코드(내 코드) 마침표가 두개 이상이면 하나로 치환하기 위해 fs 변수 사용 .이 나오면 fs=1로 만들고 다음부터 .이 나오는 경우 fs가 1이면 연속해서 나오는 것이므로 해당 문자를 erase .이 아닌 조건에 만족하는 다른 문자가 나오면 fs=0으로 만든다. 나머지 단계는 흐름에 맞게 if문을 사용 #include #include using namespace std; string solution(string new_id) { string answer = ""; int fs=0; for(int i=0; i=97 && answer[i]=48 && answer[i]=16){ answer.erase(15, answer.size()-1); } if(answer[answer.size()-1]=='.'){..
성공 코드(내 코드) 각각의 숫자에 해당하는 문자열을 찾아 숫자로 바꿔준다. 문자열을 치환해주는 함수 replace 문자열.replace(시작 위치, 길이, 치환 문자열) 시작 위치부터 지정한 길이만큼 문자열을 치환 문자로 변환 범위 안에 원하는 값을 찾는 함수 find 문자열.find(검색 문자열) 문자열 앞에서부터 검색을 시작해 검색 문자열이 시작되는 위치를 반환 검색 문자열을 찾지 못한 경우 string::npos(429467295) 반환 숫자 타입의 데이터를 안전하게 스트링 타입으로 변경하도록 하는 함수 to_strong to_string(숫자) string 타입의 문자열을 int형으로 바꾸는 함수 stoi(int형 숫자) #include #include using namespace std; in..