728x90

단계별로 풀어보기 수학 1의 7단계 문제

 

2775번: 부녀회장이 될테야

첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다. (1 <= k <= 14, 1 <= n <= 14)

www.acmicpc.net

배열을 하나 만들어놓고 차곡차곡 더해서 저장하면 된다.

#include <iostream>
#include <algorithm>
using namespace std;

int main() {
	int a;
	cin >> a;
	int** input = new int*[a];
	for (int i = 0; i < a; i++) {
		input[i] = new int[2];
	}
	int maxFloor = 0;
	int maxNumber = 1;
	for (int i = 0; i < a; i++) {
		int floor, number;
		cin >> floor >> number;
		if (floor > maxFloor) maxFloor = floor;
		if (number > maxNumber) maxNumber = number;
		input[i][0] = floor;
		input[i][1] = number;
	}
	int** apartment = new int*[maxFloor + 1];
	for (int i = 0; i < maxFloor + 1; i++) {
		apartment[i] = new int[maxNumber];
	}
	for (int i = 0; i <= maxFloor; i++) {
		apartment[0][i] = i + 1; //0층 i호를 i + 1로 초기화
	}
	for (int i = 1; i < maxFloor + 1; i++) { //1층부터 k층까지
		int sum = 0;
		for (int j = 0; j < maxNumber; j++) { //1호부터 n호까지
			sum += apartment[i - 1][j];
			apartment[i][j] = sum;
		}
	}
	for (int i = 0; i < a; i++) {
		cout << apartment[input[i][0]][input[i][1] - 1] << endl;
	}

	return 0;
}
728x90

'알고리즘 문제' 카테고리의 다른 글

[백준] 1152번 단어의 개수  (0) 2020.01.25
[백준] 2580번 스도쿠  (0) 2020.01.25
[백준] 2156번 포도주 시식  (0) 2020.01.24
[백준] 2579번 계단 오르기  (0) 2020.01.24
[백준] 2446번 별 찍기 - 9  (0) 2020.01.22

+ Recent posts