반복 횟수 -> 2나누고 소수점 이하를 버린다.
data[0]
- data[4]
data[1]
- data[3]
data[2]
는 변경할 필요가 없으므로tmp
는 temporary의 줄임말인데 임시로 복사하기 위해 선언한 변수.
i = 0 일때
tmp에 data[0]
을 복사하고
기존의 data[0]
에는 data[4]
를 입력.
data[4]
에는 복사해뒀던 tmp
를 입력.
data[0]
을 편의상 0이라고하고0과 1 2 3 4
1과 2 3 4
2와 3 4
3과 4
이런식으로 비교하면서 값을 서로 교환해나가기 때문
따라서 j는 i의 초기값보다 +1 큰 값으로 시작해서 배열의 마지막값까지를 선택할수 있게 스캔해야한다
그 이후에는 위의 역순배치의 경우와 비슷하게 임시적인 변수 tmp
를 이용
비교후 뒤의 값이 크기가 더 작은 경우 값을 바꾸고 그 바꾼값과 또 그 뒤의 값과의 비교를 반복하는 식
/** 출력하기 */
// "\t" 탭키
// "\n" 줄바꿈
for (let i = 0; i < data.length; i++) {
let str = "";
for (let j = 0; j < data[i].length; j++) {
if (data[i][j] == 0) {
str += "\t\t";
} else if (data[i][j] > 0 && data[i][j] < 10) {
str += data[i][j] + "\t\t"
} else {
str += data[i][j] + "\t"
}
}
console.log(str);
}
내 vscode 설정에선 tab 사이즈가 4가 아닌 2여서인지 날짜가 한자리수면 길이가 짧아서 칸이 제대로 정렬이 되지 않아서 data[i][j] == 0
에 \t
을 하나 더 추가하고 또 중간에
else if (data[i][j] > 0 && data[i][j] < 10) {
str += data[i][j] + "\t\t"
}
를 더해주었다.