Deff_Dev

[코드업] 진격 후 결과 (C++) 본문

코딩테스트/코드업

[코드업] 진격 후 결과 (C++)

Deff_a 2024. 3. 27. 12:30
 

진격 후 결과

0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 2 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -4 2 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1

codeup.kr

 

문제

이 문제는 11 * 10 크기의 보드판에서 각 말(1)이 제일 아래쪽에서 위쪽 방향으로 이동한다.

장애물은 0보다 크면 블럭 장애물, 0보다 작으면 구덩이 장애물, 0은 평지로 이루어진 길을 의미할 때, 각 말의 이동 결과를 출력한다.

 

블럭 장애물에 부딪혀서 실패시 "세로줄 번호 crash", 

구덩이에 떨어져서 실패시 "세로줄 번호 fall",

무사히 통과하면 "세로줄 번호 safe"를 출력한다.

 

풀이

중첩 for문을 이용하여 말을 찾고 진격하는 방법으로 풀이했다.

#include <iostream>
// https://codeup.kr/problem.php?id=1509&rid=0
using namespace std;

int map[12][11] = { 0, };

int main() {
	
	for (int i = 1; i <= 11; i++) { // 맵 입력
		for (int j = 1; j <= 10; j++) {
			cin >> map[i][j];
		}
	}

	for (int i = 1; i <= 10; i++) { 
		if (map[11][i] == 1) { // 말 찾기
			for (int j = 10; j > 0; j--) { // 진격 시작
				if (map[j][i] > 0) { // 장애물에 부딪힘
					cout << i << " " << "crash" << endl;
					break;
				}
				else if  (map[j][i] < 0) { // 장애물에 빠짐
					cout << i << " " << "fall" << endl;
					break;
				}

				if (j == 1) { // 무사 통과
					cout << i << " " << "safe" << endl;
				}
			}
		}
	}

	return 0;
}

 

 

 

CodingTestPractice/CodeUp/2차원 배열/진격 후 결과.cpp at main · seungdo1234/CodingTestPractice

코딩 테스트 연습. Contribute to seungdo1234/CodingTestPractice development by creating an account on GitHub.

github.com