μƒˆμ†Œμ‹

Languages/C

1차원 λ°°μ—΄κ³Ό 2차원 λ°°μ—΄

  • -
λ°˜μ‘ν˜•

λͺ¨λ“  μ‹€μŠ΅ μ½”λ“œλŠ” κΉ€μ„±μ—½ λŒ€ν‘œλ‹˜μ˜ 

"Do it ! Cμ–Έμ–΄ μž…λ¬Έ" μ±…μ˜ λ‚΄μš©μ„ λ°”νƒ•μœΌλ‘œ μ‹€μŠ΅ν•˜κ³  λ‚΄μš©μ„ μš”μ•½ν•œ κ²ƒμž…λ‹ˆλ‹€.

 

β€» μƒμ—…μš©λ„κ°€ μ•„λ‹ˆλ©°, tipsλ₯Ό 톡해 배운 λ‚΄μš©μ„ λ³΅μŠ΅ν•˜κ³ μž 슀슀둜 κ³΅λΆ€ν•˜λŠ” λͺ©μ μœΌλ‘œ μ˜¬λ¦¬λŠ” κ²ƒμ΄λ‹ˆ

λΆˆλ²•μœΌλ‘œ μ‚¬μš©ν•˜λŠ” 것을 κΈˆμ§€ν•©λ‹ˆλ‹€.


 

1. 1차원 λ°°μ—΄κ³Ό 2차원 λ°°μ—΄μ˜ 차이

 

ex) λ°”λ‘‘νŒμ„ μ˜ˆμ‹œλ‘œ 3ν–‰ 4μ—΄μ˜ ν˜•νƒœλ‘œ μΆ•μ†Œμ‹œμΌœ 놓고 돌이 놓여 μžˆλŠ” 상황을 1차원 배열을 μ‚¬μš©ν•˜μ—¬ 좜λ ₯ν•΄λ³΄μž.

 

#include<stdio.h>

void main()
{
    char data[12] = { 0,0,2,0,1,1,0,0,2,1,0,2 }; //1은 검은 돌, 2λŠ” 흰 돌, 0은 돌이 μ—†μŒμ„ 의미
    int i, x, y;

    for (i = 0; i < 12; i++) {
        x = i % 4 + 1; //xλŠ” μ—΄ 번호λ₯Ό ꡬ함. %4λ₯Ό ν•΄μ£ΌλŠ” μ΄μœ λŠ” ν•œμ€„μ— μ—΄μ˜ κ°―μˆ˜κ°€ 4κ°œμž„μ„ μ˜λ―Έν•œλ‹€.
        y = i / 4 + 1; //yλŠ” ν–‰ 번호λ₯Ό κ΅¬ν•œλ‹€. λ§ˆμ°¬κ°€μ§€λ‘œ μ—΄μ˜ κ°œμˆ˜κ°€ 4이기 λ•Œλ¬Έμ— /4λ₯Ό ν•΄μ€€λ‹€.
        printf("%d ν–‰ %d 열에 ", y, x); //2차원 배열은 data[y][x] 좕을 보톡 μ˜λ―Έν•˜λ―€λ‘œ yλΆ€ν„° 써쀀닀.
        if (data[i] == 1) printf("검은 돌이 놓여 μžˆμŠ΅λ‹ˆλ‹€. \n");
        else if (data[i] == 2)printf("흰 돌이 놓여 μžˆμŠ΅λ‹ˆλ‹€.\n");
        else printf("λŠ” 돌이 놓여 μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.\n");
    }
    return 0;

}

 

 

κ²°κ³Ό 

 

 

2. 2차원 배열에 λ°”λ‘‘νŒ 정보 μ €μž₯ν•˜κΈ°

 

μ•žμ˜ μ˜ˆμ œμ™€ 같은결과가 λ‚˜μ˜€λ„λ‘ 2차원 배열을 μž¬κ΅¬μ„± ν•˜μ—¬ μ½”λ“œλ₯Ό κ΅¬ν˜„ν•΄λ³΄μž.

 

#include<stdio.h>

int main() {

	char data[3][4] = { {0,0,2,0},{1,1,0,0},{2,1,0,2} };
	int x, y;

	for (y = 0; y < 3; y++) { //ν–‰μ˜ κ°œμˆ˜κ°€ y의 값이닀.
		for (x = 0; x < 4; x++) {
			printf("%dν–‰ %d열에", y + 1, x + 1);//+1을 ν•΄μ£ΌλŠ” μ΄μœ λŠ” 0ν–‰ 0μ—΄μ˜ ν‘œν˜„μ„ μ—†μ• κΈ° μœ„ν•¨. index = 0λΆ€ν„° μ‹œμž‘ν•˜κΈ° λ•Œλ¬Έ
			if (data[y][x] == 1) printf("검은 돌이 놓여 μžˆμŠ΅λ‹ˆλ‹€.\n");
			else if (data[y][x] == 2) printf("흰 돌이 놓여 μžˆμŠ΅λ‹ˆλ‹€.\n");
			else printf("λŠ” 돌이 놓여 μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.\n");
		}
	}
	return 0;
}

 

κ²°κ³Ό 

 

μ™„μ„± μ†ŒμŠ€μ½”λ“œλ₯Ό 확인해보면 배열이 2μ°¨μ›μœΌλ‘œ λ˜μ–΄ μžˆμ–΄μ„œ μ„ μ–Έλœ ν˜•νƒœλ§Œ 보아도

ν–‰, μ—΄ ꡬ별이 1차원에 λΉ„ν•΄ μ‰½λ‹€λŠ” 것을 μ•Œ 수 μžˆλ‹€.

 

κ·Έλ ‡λ‹€κ³  ν•΄μ„œ 2차원 배열이 1차원 λ°°μ—΄ ν‘œν˜„λ³΄λ‹€ 더 μ’‹λ‹€λŠ” 것은 μ•„λ‹ˆλ‹€.

μˆ˜ν•™μ μΈ κ°œλ…μ„ μ΄ν•΄ν•˜λŠ”λ° 어렀움이 μ—†λ‹€λ©΄ 1차원 ν˜•νƒœλ‘œ 데이터λ₯Ό ν‘œν˜„ν•˜λŠ” 것이 더 μ’‹λ‹€.

μ™œλƒν•˜λ©΄ μ‚¬λžŒμ΄ 보기에 μ†ŒμŠ€ μ½”λ“œκ°€ κ°„λ‹¨ν•˜λ‹€κ³  ν•΄μ„œ κΈ°κ³„μ–΄λ‘œ 된 μ½”λ“œλ„ κ°„λ‹¨ν•œ 것은 μ•„λ‹ˆκ³ , 

 

데이터가 μ‹€μ§ˆμ μœΌλ‘œ μ €μž₯ν•˜λŠ” 물리적 λ©”λͺ¨λ¦¬λŠ” κ²°κ΅­ 1차원 ν˜•νƒœμ΄κΈ° λ•Œλ¬Έμ΄λ‹€.

 

 

λ°˜μ‘ν˜•
Contents

ν¬μŠ€νŒ… μ£Όμ†Œλ₯Ό λ³΅μ‚¬ν–ˆμŠ΅λ‹ˆλ‹€

이 글이 도움이 λ˜μ—ˆλ‹€λ©΄ 곡감 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€.