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;
}
}
최종~
반응형