이차원 배열에 값을 넣는 문제들을 풀다보면 꼭 나오는 문제가 '달팽이 모양으로 값 입력하기'다.
---------------------------------
int matrix[5][5];
int num=1;
int delta=1;
int limit=5;
int i=0,j=-1;
while(1){
//가로
for(int p=0; p<limit; p++){
j=j+delta;
matrix[i][j]=num++;
}
limit--;
if(limit<0) break;
//세로
for(int p=0; p<limit; p++){
i=i+delta;
matrix[i][j]=num++;
}
delta*=-1;
}
---------------------------------
이 코드에서 살펴볼 부분은
- limit-- : 두 선이 만나는 부분의 값은 이전 반복문에서 입력되어있다.
- delta*=-1 : →과 ↓쪽으로 갈 때는 i혹은 j의 값을 증가시켜야 하지만, ←과 ↑쪽으로 갈 때는 i혹은 j의 값을 감소시켜가야 하기 때문이다.
'Programming' 카테고리의 다른 글
[JDBC] JDBC 기본 with MySql (0) | 2019.01.01 |
---|---|
[SQL] SQL 기본 with MySql (0) | 2019.01.01 |
[Algorithm] Binary Counting으로 subset구하기 (0) | 2018.03.27 |
[Algorithm] 알고리즘 자료 (0) | 2018.03.26 |
[Node.js] NPM/Java Script (0) | 2018.03.26 |