https://programmers.co.kr/learn/courses/30/lessons/64061

 

코딩테스트 연습 - 크레인 인형뽑기 게임

[[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4

programmers.co.kr

 

stack을이용하면 간단

인형을 뽑을 때마다 해당 인형의 값을 stack에 push

push하기 전에 조건문으로 stack.top()의 값이 지금 뽑은 인형과 같다면 pop()으로 터트리고 answer 2 증가(인형 두개가 터지니까)

뽑은 인형의 자리는 빈 자리 (0)으로 만듬

 

int solution(vector<vector<int>> board, vector<int> moves) {
	int answer = 0;
	stack<int> stack;
	for (int i = 0; i < moves.size(); i++) {
		for (int j = 0;j < board.size();j++) {
			if (board[j][moves[i]-1] != 0) {
				if (!stack.empty() && board[j][moves[i] - 1] == stack.top()) {
					stack.pop();
					answer+=2;
				}
				else 
					stack.push(board[j][moves[i] - 1]);
				board[j][moves[i] - 1] = 0;
				break;
			}
		}
	}
	return answer;
}

https://programmers.co.kr/learn/courses/30/lessons/81301

 

코딩테스트 연습 - 숫자 문자열과 영단어

네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자

programmers.co.kr

 

 

하드코딩..

단순하게 for문으로 문자열 검색하면서 one은 1, two는 2..... zero는 0으로 치환 후 string s 변수에 저장

stoi로 형변환 후 출력

int solution(string s) {
	int answer = 0;
	string result="";
	for (int i = 0; i < s.size();i++) {
		if (s[i] == 'o') {
			result.push_back('1');
			i += 2;
		}
		else if (s[i] == 't') {
			if (s[i+1] == 'w') {
				result.push_back('2');
				i += 2;
			}
				
			else {
				result.push_back('3');
				i += 4;
			}
		}
		else if (s[i] == 'f') {
			if (s[i+1] == 'o')
				result.push_back('4');
			else 
				result.push_back('5');
			i += 3;
		}
		else if (s[i] == 's') {
			if (s[i+1] == 'i') {
				result.push_back('6');
				i += 2;
			}

			else {
				result.push_back('7');
				i += 4;
			}
		}
		else if (s[i] == 'e') {
			result.push_back('8');
			i += 4;
		}
		else if (s[i] == 'n') {
			result.push_back('9');
			i += 3;
		}
		else if (s[i] == 'z') {
			result.push_back('0');
			i += 3;
		}
		else {
			result.push_back(s[i]);
		}

	}
	answer = stoi(result);
	return answer;
}

+ Recent posts