성공 코드(내 코드) 각각의 숫자에 해당하는 문자열을 찾아 숫자로 바꿔준다. 문자열을 치환해주는 함수 replace 문자열.replace(시작 위치, 길이, 치환 문자열) 시작 위치부터 지정한 길이만큼 문자열을 치환 문자로 변환 범위 안에 원하는 값을 찾는 함수 find 문자열.find(검색 문자열) 문자열 앞에서부터 검색을 시작해 검색 문자열이 시작되는 위치를 반환 검색 문자열을 찾지 못한 경우 string::npos(429467295) 반환 숫자 타입의 데이터를 안전하게 스트링 타입으로 변경하도록 하는 함수 to_strong to_string(숫자) string 타입의 문자열을 int형으로 바꾸는 함수 stoi(int형 숫자) #include #include using namespace std; in..
성공 코드(내 코드) 1 2 3 4 5 6 7 8 9 * -> 10으로 두고 푼다. 0 -> 11로 두고 푼다. # -> 12로 두고 푼다. 누르는 번호가 1, 4, 7 -> L 3, 6, 9 -> R 이외에는 현재 왼손이 누르고 있는 번호의 위치와 오른손이 누르고 있는 번호의 위치를 통해 더 가까운 손으로 누른다. 거리가 같은 경우 왼손잡이면 왼손으로 오른손잡이면 오른손으로 누른다. 누르고자 하는 번호와 현재 왼쪽/오른쪽 손이 누르고 있는 번호의 위치 사이의 거리를 측정하기 위해 distance 함수를 사용한다. 매개변수: 누르고자 하는 번호(num), 현재 누르고 있는 번호(now), 어느쪽 손인지(hand) now가 중간 줄에 있는 번호인 2, 5, 8, 11이 아니면 오른손인 경우 오른쪽 줄에 있..
성공 코드(내 코드) moves의 크기 만큼 for문을 돌며 moves 원소의 값에 해당되는 board의 열을 탐색한다. `이 때 위에서 아래로 탐색하며 0보다 큰 숫자가 발견되면 해당 원소 값을 바구니에 넣고 0으로 만들어준다. 그리고 반복문을 빠져나온다. 바구니 안 원소가 2개 이상인 경우 마지막 원소와 그 앞의 원소를 비교하여 값이 같으면 인형이 터지므로 answer을 2 증가시키고 해당되는 두 원소를 바구니에서 지운다. #include #include using namespace std; int solution(vector board, vector moves) { int answer = 0; vector basket; for(int i=0; i=2){ int end=basket.size()-1; ..
성공 코드(내 코드) 선택해야 하는 폰켓몬의 마리 수 = nums의 사이즈/2 위의 값을 미리 저장해두고 폰켓몬의 종류 번호가 담긴 1차원 배열 nums의 중복 원소를 제거한다. unique는 연속된 중복 원소를 vector의 제일 뒷부분으로 쓰레기값으로 보낸다. 따라서 sort 함수로 vector를 정렬한 뒤 unique 해줘야 한다. unique시 반환 되는 값은 vector의 쓰레기값의 첫번째 위치이다. 이를 이용하여 unique 후 erase가 가능하다. nums에는 폰켓몬의 종류만 남게 된다. 구하고자 하는 것은 다음과 같다. 가장 많은 종류의 폰켓몬을 선택하는 방법에서 폰켓몬 종류 번호의 개수 선택해야 하는 폰켓몬의 마리 수 >= 폰켓몬의 종류 폰켓몬의 종류 선택해야 하는 폰켓몬의 마리 수 <..
성공 코드(내 코드) 참여자 집합과 완주자 집합이 있을 때, 두 집합의 차집합을 구하면 완주하지 못한 선수를 구할 수 있다. 차집합을 set_difference 함수를 이용하여 구하기 전 sort 함수로 정렬이 먼저 이루어져야 한다. 미완주자 = 참여자 - 완주자 #include #include #include using namespace std; string solution(vector participant, vector completion) { string answer = ""; vector sub(1); sort(participant.begin(), participant.end()); sort(completion.begin(), completion.end()); set_difference(parti..