반응형
앞서 for문의 사용이유와 방법에 대해서 알아보았다.
for문을 중첩으로 사용하면 더욱 많은 일을 컴퓨터에게 시킬 수 있다.
실생활 예를 들어보면 "시리야!, 매달 일요일 4시에 알람 맞춰줘!"라고 말하면
시리는 어떻게 알람을 맞추게 되는 걸까?
반응형
다양한 방법이 있겠지만, 단순하면서 강력하게는 이중 for문을 사용하는 것이다.
for문에서는 범위 설정이 주요했듯이, 2중 for문에서도 범위 설정이 중요하다.
for문과는 결이 살짝 다른 중요함이다. 어떻게 다른 결인지 지금 바로 알아보자!
#include <stdio.h>
int main(void)
{
int A[6 + 1] = { 1, 2, 3, 4, 5, 6 };
int i;
int j;
for (i = 0; i < 6; i++)
{
for (j = 0; j < 6; j++) // 2중 for문의 예시
{
printf("A[i]: %d\n", i, A[i]);
printf("A[j]: %d\n", j, A[j]);
}
}
}
2중 for문의 구조를 보면 i로 구성 된 for문 바로 아래 j로 구성 된 for문이 보인다.
(보통 i, j를 사용하는 것이지, 다른 알파벳을 사용해도 무관하다)
여기서 i와 j의 범위 설정도 당연히 중요하다.
추가로 고려해야할 것은 i와 j가 담당하는 일이다.
위에 실생활 예시로 들었던 것을 활용해보면
( "시리야!, 매달 일요일 4시에 알람 맞춰줘!")
i 는 1월~12월까지 탐색을 한다.
j는 i에서 고른 달의 1일부터 15일까지 탐색을한다.
코드를 보면 아래와 같다(15일까지만 출력합니다..)
#include <stdio.h>
int main(void)
{
int A[12 + 1] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
int B[31 + 1] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
int i;
int j;
for (i = 0; i < 12; i++) // 12번 반복을 뜻함(1월~12월)
{
for (j = 0; j < 15; j++) // 15번 반복을 뜻함(1일~15일)
{
printf("%d월 %d일\n", A[i], B[j]);
}
}
}
오늘은 2중 for문에 대해서 알아보았습니다.
추후 알고리즘에서 정만 빈번하게 사용되는 만큼 다름 포스팅에서는 2중 for문을 이용한 다양한 문제를 다뤄보도록하겠습니다.
반응형