코딩굼벵이
구르는 중
코딩굼벵이
  • 분류 전체보기 (116)
    • [C_C++]이론 공부 (17)
      • 알고리즘 (11)
      • 이론+STL (6)
    • [C_C++]코딩테스트 연습 (45)
      • [프로그래머스] level 1 (26)
      • [프로그래머스] level 2 (5)
      • [백준] 일반 문제 (12)
      • 기타 (2)
    • Solana (28)
      • Documentation (9)
      • Validator - 공부 (10)
      • Validator - 실행 (devnet & te.. (6)
      • 그 외 (3)
    • React (4)
    • Linux (2)
    • Javascript (2)
    • 블록체인 기반 핀테크 및 응용 SW 개발 (8)
      • React (1)
      • Javascript (3)
      • Solidity (3)
      • 프로젝트 (1)
    • 기타 (10)

블로그 메뉴

  • 🌟 깃허브
  • 🌿 Portfolio(2021)
  • 홈
  • 태그
  • 방명록

티스토리

최근 글

태그

  • 밸리데이터
  • 솔라나
  • Hooks #React
  • 모니터링
  • Immer #ContextAPI
  • grafana

인기 글

전체 방문자
오늘
어제
hELLO · Designed By 정상우.
코딩굼벵이

구르는 중

[C++] 프로그래머스 - 크레인 인형뽑기
[C_C++]코딩테스트 연습/[프로그래머스] level 1

[C++] 프로그래머스 - 크레인 인형뽑기

2021. 7. 2. 20:59
728x90

 

프로그래머스 - 크레인 인형뽑기 문제

 

무슨 문제길래 카카오 겨울 인턴십 문제가 푼 사람이 2만명이 다 돼가나 했더니...

이중배열의 개념만 잘 이해하고 있으면 생각보다 쉬운 문제였다!

 

1. board.size()를 하면 가장 겉의 배열의 요소 수를 세어주므로 세로줄 수, 즉 row_num으로 둔다.

2. moves[i]는 x(col_num)을 지정해 줬다. 이중배열은 array[row_num][col_num] 형식으로 요소를 꺼낸다.

3. bucket에 push/pop_back을 사용해 꺼낸 인형의 숫자를 넣거나 없앤다.

4. 인형을 없앨 때는 bucket의 size가 1 이상이어야 비교가 가능하므로 &&를 걸어준다.

 

#include <string>
#include <vector>

using namespace std;

//	vector<vector<int>> board = { {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} };

int solution(vector<vector<int>> board, vector<int> moves) {
	int answer = 0;
	int row_num = board.size();
	vector<int> bucket;
	for (int i = 0; i < moves.size(); i++) {
		int x = moves[i] - 1;
		for (int j = 0; j < row_num; j++) {
			if (board[j][x] != 0) {
				bucket.push_back(board[j][x]);
				board[j][x] = 0;
				if (bucket.size() > 1 && bucket[bucket.size() - 1] == bucket[bucket.size() - 2]) {
					bucket.pop_back();
					bucket.pop_back();
					answer += 2;
				}
				break;
			}
		}
	}
	return answer;
}

 

'[C_C++]코딩테스트 연습 > [프로그래머스] level 1' 카테고리의 다른 글

[C++] 프로그래머스 - 소수 만들기  (0) 2021.07.13
[C++] 프로그래머스 - 신규 아이디 추천  (0) 2021.07.13
[C++] 프로그래머스 - 2016년  (0) 2021.07.02
[C++] 프로그래머스 - 모의고사  (0) 2021.07.02
[C++] 프로그래머스 - 폰켓몬 (set)  (0) 2021.06.29
    '[C_C++]코딩테스트 연습/[프로그래머스] level 1' 카테고리의 다른 글
    • [C++] 프로그래머스 - 소수 만들기
    • [C++] 프로그래머스 - 신규 아이디 추천
    • [C++] 프로그래머스 - 2016년
    • [C++] 프로그래머스 - 모의고사
    코딩굼벵이
    코딩굼벵이
    구르는 재주 연마 중

    티스토리툴바