C언어/문제풀다 하나씩

가장 큰 숫자값 3개 구하기 // 4칸짜리 삽입정렬 이용함

mcdn 2020. 5. 13. 15:22
반응형

입력 예제

3 4

1 5 2 7

1 5 1 6

3 3 2 4

출력 결과

7(0,3) 6(1,3) 5(0,1)

 

#1

for (int i = 0; i < y;i++) {
		for (int j = 0; j < x;j++) {
			if (i == 0 && j < 3) {
				result[j] = arr[i][j];
				for (int k = 3;k > 0;k--) {
					if (result[k - 1] < result[k]) {
						swap(result[k - 1], result[k]);
					}
				}
			}
		}
	}
	cout << result[0] << result[1] << result[2];

여기까지 1~3 채워보기 성공! 

cout << 결과는 521, 잘 반영됨

 

 

#2 765 프린트해보기

 

#include <iostream>
using namespace std;
int arr[7][7];

int result[4];

int main() {
	int y, x;
	cin >> y >> x;

	for (int i = 0; i < y;i++) {
		for (int j = 0; j < x;j++) {
			cin >> arr[i][j];
		}
	}

	for (int i = 0; i < y;i++) {
		for (int j = 0; j < x;j++) {
			if (i == 0 && j < 3) {
				result[j] = arr[i][j];
				for (int k = 3;k > 0;k--) {
					if (result[k - 1] < result[k]) {
						swap(result[k - 1], result[k]);
					}
				}
			}
			else {
				result[3] = arr[i][j];
				for (int k = 3;k > 0;k--) {
					if (result[k - 1] < result[k]) {
						swap(result[k - 1], result[k]);
					}
				}
			}
		}
	}
	//cout << result[0] << result[1] << result[2];
	//765 잘 나옴

}

#3 좌표 저장하기 

xy[4][2] 만듬

(처음에 xy[3][2] 만들어서 에러남 

 

#include <iostream>
using namespace std;
int arr[7][7];

int result[4];

int main() {
	int y, x;
	cin >> y >> x;

	for (int i = 0; i < y;i++) {
		for (int j = 0; j < x;j++) {
			cin >> arr[i][j];
		}
	}
	int xy[4][2];


	for (int i = 0; i < y;i++) {
		for (int j = 0; j < x;j++) {
			if (i == 0 && j < 3) {
				result[j] = arr[i][j];
				xy[j][0] = i;
				xy[j][1] = j;
				for (int k = 3;k > 0;k--) {
					if (result[k - 1] < result[k]) {
						swap(result[k - 1], result[k]);
						swap(xy[k - 1], xy[k]);
					}
				}
			}
			else {
				result[3] = arr[i][j];
				xy[3][0] = i;
				xy[3][1] = j;
				for (int k = 3;k > 0;k--) {
					if (result[k - 1] < result[k]) {
						swap(result[k - 1], result[k]);
						swap(xy[k - 1], xy[k]);
					}
				}
			}
		}
	}
	for (int i = 0; i < 3;i++) {
		cout << result[i];
		cout << "(" << xy[i][0] << "," << xy[i][1] << ")" << endl;

	}

}

 

최종~

반응형