어제에 이어서 2~3시간 정도 코딩하니 성공했습니다.
지뢰찾기 이전 내용들을 이해하고 넘어가니 코딩을 설계하는 생각 폭이 넓어지는 것 같더군요 ㅎㅎ 지뢰찾기 해설도 제가 생각했던 방법으로 나와서 왠지 모르게 뿌듯 했습니다. ㅎㅎ
코딩하다가 급 질문이 생겨 글을 올립니다.
1. 코딩을 하다보니까 for문을 굉장히 많이 쓰게 되는데
실제 실무에서는 for문 안에 for문이 여러개 들어가는 것을 지양하는 편인지 궁금합니다.
2. 혹시 여기 게시판에는 비밀글이 가능한가요?ㅎㅎ(검토 받고 싶은 욕심이 ..ㅎㅎㅎ)
1. for 문은 매우 많이 사용합니다.
반복문의 95%는 for 문이고, 5%가 while 문입니다.
보통의 표는 2차원 배열로 표현하기 때문에 2차원 배열을 굉장히 많이 사용합니다. 즉, 2중첩 루프는 기본입니다.
3D 게임 그래픽 등에서는 3D를 위해 굉장히 많은 행렬 연산을 사용합니다. 행렬도 2차원 배열로 표현하므로 2중첩 루프가 기본입니다. 연산량이 굉장히 많기 때문에 행렬 연산에 특화된 프로세서(보통 NVIDIA는 CUDA CORE라고 합니다)가 4000개씩 들어가 있습니다. 우리는 이를 그래픽 카드라고 합니다.
인공지능, 딥러닝도 신경망을 행렬로 처리합니다. 따라서 2차원 배열과 2중첩 루프는 기본입니다. 연산량이 매우 많기 때문에 그래픽 카드의 도움을 받습니다. 또는 TPU라는 전용 딥러닝 머신을 사용하기도 합니다.
NxN 행렬을 순회하려면 2중첩 루프가 필요하고, NxN 행렬에서 3x3 행렬 단위로 계산하는 작업을 반복한다면 4중첩 루프가 필요합니다. 즉, 막대한 계산량이 필요하고, 이를 위해 그래픽 카드나 전용 머신을 사용합니다.
그림의 크기가 1024x1024인데 절반 크기로 축소한다면 2x2 픽셀의 평균값을 구해서 축소하게 됩니다. 지뢰찾기 문제와 코드의 구조는 비슷하죠(지뢰찾기는 3x3로 주변 지뢰의 개수를 구하는 문제).
2. 비밀글 기능은 없습니다.