소 ê°� ¶
기존� 나열� �료와는 다른 , �차배열� ��� 소트..
ìƒ�ê°�보다 ì–´ë ¤ì› ë‹¤.
행과 ì—´ì�´ ê°™ì�´ forì†�ì—� 들어가게 ë�˜ë©´ ê°’ì�´ í‹€ë ¤ì ¸ì„œ 따로 처리하다보니 소스가 길어졌다.
� 좋� 방법� 있�까??
ìƒ�ê°�보다 ì–´ë ¤ì› ë‹¤.
행과 ì—´ì�´ ê°™ì�´ forì†�ì—� 들어가게 ë�˜ë©´ ê°’ì�´ í‹€ë ¤ì ¸ì„œ 따로 처리하다보니 소스가 길어졌다.
� 좋� 방법� 있�까??
ë¬¼ë¡ ì�´ëŸ° ìƒ�ê°�ë�„ í•´ 보았다. matrix를 temp1,2 matrix를 만들어서 행과 ì—´ì�„ 따로 계산한다..
하지만 ì�´ë²ˆì—� ë‚´ ìƒ�ê°�ì—� 변수 ë‚비ë� 것 ê°™ê³ í•´ì„œ 그냥 matrix 복사를 한번 ë�” 했다.
하지만 ì�´ë²ˆì—� ë‚´ ìƒ�ê°�ì—� 변수 ë‚비ë� 것 ê°™ê³ í•´ì„œ 그냥 matrix 복사를 한번 ë�” 했다.
- 나름대로 sort� 대해 여러가지 ��� 하게 � 계기가 � 것 같다.
연습장ì—� 연필로 ë�„ì �ë�„ì �ê±°ë ¤ 보기ë�„ í•˜ê³ ..
ë˜� ë�” 좀ë�” 효율ì �ì�¸ 프로그램ì�„ 만들기 ìœ„í•´ì„ ì–´ë–»ê²Œ í•´ì•¼í• ê¹Œ ? ê·¸ë¦¬ê³ C언어ì�˜ 장ì �ì�„ 살리는 방법ì�´ ë˜ê¹Œ?
í•˜ê³ ìƒ�ê°�í•´ 봤다. 그래서 ìƒ�ê°�하면서 프로그래ë°� 한 것, ë˜� ìž�초해서 í•´ 버린 소트 때문ì—� 시간ì�´ ë§Žì�´ 걸린 것 같다.
í•˜ê³ ìƒ�ê°�í•´ 봤다. 그래서 ìƒ�ê°�하면서 프로그래ë°� 한 것, ë˜� ìž�초해서 í•´ 버린 소트 때문ì—� 시간ì�´ ë§Žì�´ 걸린 것 같다.
소 스 ¶
~cpp
#include <stdio.h>
#define MATRIX_SIZE 4
void search_max(int matrix[][MATRIX_SIZE]);
void print_matrix(int matrix[][MATRIX_SIZE]);
void change(int *, int *);
int i, j;
void main()
{
int matrix[MATRIX_SIZE][MATRIX_SIZE] = {{0,}};
//3 * 3 ìž…ë ¥ .
for(i = 0; i < MATRIX_SIZE - 1; i++){
for(j = 0; j < MATRIX_SIZE -1; j++){
printf("matrix[%d][%d] = ", i, j);
scanf("%d", &matrix[i][j]);
}
}
// 가장 � 수 찾기.
search_max(matrix);
//ì¶œë ¥
print_matrix(matrix);
}
void search_max(int matrix[][MATRIX_SIZE])
{
int temp_matrix[4][4], a, b;
for(i = 0; i < MATRIX_SIZE; i++){
for(j = 0; j < MATRIX_SIZE; j++){
temp_matrix[i][j] = matrix[i][j];
}
}
//찾아 넣기 행
for(i = 0; i < MATRIX_SIZE-1; i++){
for(j = 0; j < MATRIX_SIZE-2; j++){
if(temp_matrix[i][j] > temp_matrix[i][j+1]){
change(&temp_matrix[i][j], &temp_matrix[i][j+1]);
}
}
matrix[i][MATRIX_SIZE-1] = temp_matrix[i][MATRIX_SIZE-2];
}
for(i = 0; i < MATRIX_SIZE; i++){
for(j = 0; j < MATRIX_SIZE; j++){
temp_matrix[i][j] = matrix[i][j];
}
}
//찾아 넣기 열
for(i = 0; i < MATRIX_SIZE-1; i++){
for(j = 0; j < MATRIX_SIZE-2; j++){
if(temp_matrix[j][i] > temp_matrix[j+1][i]){
change(&temp_matrix[j][i], &temp_matrix[j+1][i]);
}
}
matrix[MATRIX_SIZE-1][i] = temp_matrix[MATRIX_SIZE-2][i];
}
//찾아 넣기 마지막
for(i = 0; i < MATRIX_SIZE-2; i++){
if(temp_matrix[MATRIX_SIZE-1][i] > temp_matrix[MATRIX_SIZE-1][i+1]){
change(&temp_matrix[MATRIX_SIZE-1][i], &temp_matrix[MATRIX_SIZE-1][i+1]);
}
if(temp_matrix[i][MATRIX_SIZE-1] > temp_matrix[i+1][MATRIX_SIZE-1]){
change(&temp_matrix[i][MATRIX_SIZE-1], &temp_matrix[i+1][MATRIX_SIZE-1]);
}
}
a = temp_matrix[MATRIX_SIZE-1][MATRIX_SIZE-2];
b = temp_matrix[MATRIX_SIZE-2][MATRIX_SIZE-1];
matrix[MATRIX_SIZE-1][MATRIX_SIZE-1] = a > b ? a : b;
}
void print_matrix(int matrix[][MATRIX_SIZE])
{
for(i = 0; i < MATRIX_SIZE; i++){
for(j = 0; j < MATRIX_SIZE; j++){
printf("%5d", matrix[i][j]);
}
if(j == MATRIX_SIZE)
printf("\n");
}
}
void change(int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
나한테 í• ë§� ¶
ê°� 기능별로 함수로 나누는건 좋ì�€ ìƒ�ê°�ì�¸ë�° ë§�야..^^ 그게 ì˜¤ížˆë ¤ ë¬¸ì œê°€ ë�œê²ƒ ê°™ì�€ ëŠ�낌ì�´..ã…Žã…Ž
다해서 한페ì�´ì§€ 안ì—� 들어갈 ì •ë�„로 간단하다면 그냥 짜넣어ë�„ ë¬¸ì œëŠ” ì—†ì�„것 같아..^^ -조현태
다해서 한페ì�´ì§€ 안ì—� 들어갈 ì •ë�„로 간단하다면 그냥 짜넣어ë�„ ë¬¸ì œëŠ” ì—†ì�„것 같아..^^ -조현태
ê·¸ëŸ¬ê³ ë³´ë‹ˆ 소스가 소트를 하네? ë¬¸ì œì—�는 ì •ë ¬í•˜ëž€ë§�ì�´ 없었는ë�°..;;
ì�Œ.. 설마 ê¹”ë�”하게 ì¶œë ¥í•˜ëž€ë§�ì�´ 그런뜻ì�¸ê±°ì•¼??;;;;;
설마아~ - 조현태
ì�Œ.. 설마 ê¹”ë�”하게 ì¶œë ¥í•˜ëž€ë§�ì�´ 그런뜻ì�¸ê±°ì•¼??;;;;;
설마아~ - 조현태
ì�¼ë¶€ëŸ¬ 소트 했어 ~ ì“°ê³ ì‹¶ë�”ë�¼ê³ ã…‹ã…‹ , 나름대로 다 í•˜ê³ ë‚˜ì„œ í�¬ì—´ì�„ ëŠ�꼈는ë�°..^^;; --ì•„ì˜�
소트한건 ì“°ë ˆê¸°ë°°ì—´ì�´ë‹ˆ ë¬¸ì œì—†ëŠ”ê±°ê°™ì�€ë�° -_-;; ì›�래배열ì�€ ê³ ëŒ€ë¡œ 있잖아 --ì •ìˆ˜ë¯¼ìœ¼ì�Œ... ì�´ê±° ê°€ë¡œë¨¼ì € 소트하는거랑 ì„¸ë¡œë¨¼ì € 소트하는거랑 답ì�´ 다르게 나올í…�ë�°..ã…Žã…Ž - 조현태
아..�번�었네..ㅎㅎ 한번만 복사하는줄 알았으..ㅎㅎ - 조현태
소�좀 �어달�구 ㅋㅋ 너�들� 얘기한 것� 소�� 다 있는� ��야 ㅋㅋ --아�
분명히 열심히 ì�½ëŠ”ë�° ë§�ì�´ì•¼..ã…Žã…Žã…Ž ë¬¸ì œëŠ” ë‚´ 머리ì�˜ 메모리가 작아서 몇몇 부분ì�€ 기억ì�„ 잘 ëª»í•œë‹¤ê³ ...ã…Žã…Žã…Ž 그러니 다 ì �힌내용으로 ì‚½ì§ˆí•˜ê³ ìžˆì–´ë�„ 너그러운 아량으로 ì�´í•´í•´ì£¼ì‹œê¸¸..ã…Žã…Žã…Ž - 조현태










