문제 2번에 num이 하는일이 무엇인가요??
다른건 알게쓴데 num=0을 주는 이유가 뭐죠?
안녕하세요 길벗수험서 운영팀입니다.
a[i][j] = j <= mid ? ++num : --num;
삼항연산자가 포함된 위 코드에서 알 수 있습니다.
<출력> 형태와 같이 변수 num은
1,
1, 2, 1
1, 2, 3, 2, 1
1, 2, 1
1
이렇게 값이 변화하면서 a[i][j]에 값을 넣게 되죠.
매 열마다 num을 0으로 초기화한 후, j가 중간값(mid)보다 작거나 같을 때는 +1을 클 때는 -1을 수행하여, 매 열마다 0부터 중간값까지 증가했다가 다시 0까지 감소하는 값을 갖게 되죠.
만약 num을 0으로 초기화하지 않는다면,
(초기값 없이 ++, -- 수행은 불가능 하니 초기 선언시 0이 되고 i반복에서 빠진다고 가정하면)
0 0 1 0 0
0 2 3 2 0
3 4 5 4 3
0 4 5 4 0
0 0 5 0 0
위와 같이 출력되겠네요.
행복한 하루되세요 :)
-
관리자2019-09-06 09:57:46
안녕하세요 길벗수험서 운영팀입니다.
a[i][j] = j <= mid ? ++num : --num;
삼항연산자가 포함된 위 코드에서 알 수 있습니다.
<출력> 형태와 같이 변수 num은
1,
1, 2, 1
1, 2, 3, 2, 1
1, 2, 1
1
이렇게 값이 변화하면서 a[i][j]에 값을 넣게 되죠.
매 열마다 num을 0으로 초기화한 후, j가 중간값(mid)보다 작거나 같을 때는 +1을 클 때는 -1을 수행하여, 매 열마다 0부터 중간값까지 증가했다가 다시 0까지 감소하는 값을 갖게 되죠.
만약 num을 0으로 초기화하지 않는다면,
(초기값 없이 ++, -- 수행은 불가능 하니 초기 선언시 0이 되고 i반복에서 빠진다고 가정하면)
0 0 1 0 0
0 2 3 2 0
3 4 5 4 3
0 4 5 4 0
0 0 5 0 0
위와 같이 출력되겠네요.
행복한 하루되세요 :)