삼원 조 에 따라 변환 을 완성 하고 출력 변환 후 행렬

1709 단어 데이터 구조
제목 설명: 현재 3 원 그룹 이 있 습 니 다. 전 치 를 완성 하고 전 치 된 3 원 그룹 을 출력 하 며 전 치 된 행렬 을 출력 해 주 십시오.입력: 입력 은 몇 개의 테스트 사례 를 포함 하고 첫 번 째 행 위 는 하나의 정수 k 로 사례 수 를 표시 합 니 다. 그 다음 에 k 개의 사례 는 모든 사례 에서 원래 의 3 원 그룹 을 제시 합 니 다. 그 중에서 첫 번 째 줄 은 3 개의 정수 c, n, m 로 각각 0 요소 의 개수, 줄 수, 열 수 를 나타 내 고 그 다음 에 c 줄 도 3 개의 정수, i, j, v 는 모든 0 요소 가 아 닌 줄 표, 열 표 와 값 에 대응 합 니 다.출력: 모든 테스트 사례 에 대해 먼저 전 치 된 3 원 그룹 (첫 번 째 줄 은 0 요소 가 아 닌 개수, 줄 수, 열 수) 을 출력 한 다음 에 전 치 된 행렬 을 출력 하고 각 요소 간 에 빈 칸 으로 분리 합 니 다.입력 샘플: 2, 3, 3, 1, 2, 7, 2, 1, 8, 3, 5, 6, 1, 4, 9, 3, 1, 8, 5, 2, 6
출력 샘플: 2, 3, 3, 1, 2, 8, 1, 7, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
 
생각:
      행렬 을 거꾸로 저장 하면 됩 니 다. 해당 하 는 위치 에 value 를 저장 합 니 다.
 
코드 는 다음 과 같 습 니 다:
 
import java.util.Scanner;

public class TestMain {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int number = sc.nextInt();
		while (number-- != 0) {
			int number_1 = sc.nextInt();
			int hang = sc.nextInt();
			int lie = sc.nextInt();
			int max = hang>lie?hang:lie;
			int flag[][] = new int[max + 1][max + 1];
			for (int i = 0; i < number_1; i++) {
				int x = sc.nextInt();
				int y = sc.nextInt();
				int value = sc.nextInt();
				flag[y][x] = value;
			}
			System.out.println(number_1+" "+lie+" "+hang);
			
			for (int i = 1; i <= lie; i++) {
				for (int j = 1; j <= hang; j++) {
					if(flag[i][j]!=0)
						System.out.println(i+ " "+j+" "+flag[i][j]);
				}
			}
			
			for (int i = 1; i <= lie; i++) {
				for (int j = 1; j <= hang; j++) {
					System.out.print(flag[i][j] + " ");
				}
				System.out.println();
			}
		}

	}

}

좋은 웹페이지 즐겨찾기