테스트케이스 통과한 코드 공유합니더~

지적환영합니다!

vector<string> solution(vector<vector<string>> dataSource, vector<string> tags) {
	vector<string> answer;
	int data_length = dataSource.size();
	int arr[data_length];
	for (int i = 0; i < data_length; i++) {
		arr[i] = 0;
	}

	for (int t = 0; t < tags.size(); t++) {
		for (int i = 0; i < dataSource.size(); i++) {
			for (int j = 1; j < dataSource.size(); j++) {
				if (tags[t] == dataSource[i][j]) {
					arr[i]++;
				}
			}
		}
	}

	for (int j = 0; j < 10; j++) {
		int max = 0;
		int idx;
		for (int i = 0; i < dataSource.size(); i++) {
			if (arr[i] > max) {
				max = arr[i];
				idx = i;
			}
		}//가장 많은 태그 갖고있는 인덱스 구하기
		if (max == 0) break;
		answer.push_back(dataSource[idx][0]);
		arr[idx] = 0;
	}
	return answer;
}

테스트케이스 통과한 코드만 올리겠뜹니다~

트리구조 생각해서 재귀를 사용해서 구현했다.

int solution(string road, int n) {
	int answer = -1;
	int temp = 0;
	int zero_cnt = 0;

	for (int i = 0; i < road.length(); i++) {
		if (road[i] == '0') {
			zero_cnt++;
		}
	}

	if (zero_cnt == 0 or n == 0) {
		int length = 0;
		int max = 0;
		for (int i = 0; i < road.length(); i++) {
			if (road[i] == '1') {
				length++;
			}
			else {
				if (max < length) {
					max = length;
					length = 0;
				}
			}
		}
		if (max < length) {
			max = length;
			length = 0;
		}
		return max;
	}

	for (int i = 0; i < road.length(); i++) {
		if (road[i] == '0') {
			road[i] == '1';
			temp = solution(road, n - 1);
			if (answer < temp) {
				answer = temp;
			}
			road[i] = '0';
		}
	}
	return answer;
}

테스트 케이스만 통과한 코드이지만 기록한다.

난의도는 중간정도 되는것 같다.

int solution(string answer_sheet, vector<string> sheets) {
	int answer = -1;
	int que_num = answer_sheet.length();
	int student_num = sheets.size();
	int max_c_idx = -1;
	for (int i = 0; i < student_num; i++) {
		for (int j = 0; j < student_num; j++) {
			if (i == j) continue;
			//서로 다른학생일때 비교
			int s_cnt = 0; //의심문항
			int len = 0;
			bool be_que = false;
			int max_len = 0;
			int c_idx = 0;

			for (int k = 0; k < que_num; k++) {
				if (sheets[i][k] == sheets[j][k] and sheets[i][k] != answer_sheet[k]) {
					s_cnt++;
					len++;
					if (len > max_len) {
						max_len = len;
					}
				}
				else {
					len = 0;
				}
			}
			c_idx = s_cnt + (max_len*max_len);
			if (c_idx > max_c_idx) {
				max_c_idx = c_idx;
			}
		}
	}
	answer = max_c_idx;

	return answer;
}

경험삼아 본단 마인드로 코딩테스트에 응시했다.

왜냐하면 자소서 안써도 볼수있기 때무니지~~~

테스트 케이스만 통과한 코드인데 이의있다면 답글 부탁합니다~

int solution(string inputString) {
	int answer = 0;
	bool T = false;
	int arr[4] = { 0, 0, 0, 0 };
	for (int i = 0; i < inputString.length(); i++) {
		if (inputString[i] == '(') {
			arr[0]++;
		}
		else if (inputString[i] == '{') {
			arr[1]++;
		}
		else if (inputString[i] == '[') {
			arr[2]++;
		}
		else if (inputString[i] == '<') {
			arr[3]++;
		}
		else if (inputString[i] == ')') {
			if (arr[0] > 0) {
				answer++;
			}
			arr[0]--;
		}
		else if (inputString[i] == '}') {
			if (arr[1] > 0) {
				answer++;
			}
			arr[1]--;
		}
		else if (inputString[i] == ']') {
			if (arr[2] > 0) {
				answer++;
			}
			arr[2]--;
		}
		else if (inputString[i] == '>') {
			if (arr[3] > 0) {
				answer++;
			}
			arr[3]--;
		}

		for (int i = 0; i < 4; i++) {
			if (arr[i] < 0) {
				answer = -1;
				break;
			}
		}
		if (answer == -1) break;
	}
	return answer;
}

+ Recent posts