# 박테리아
writeLog 메소드랑 printLog 메소드 두 가지를 만드는 이유가
먼저 writeLog에서 생성된 값이 그대로 printLog로 들어가서
계산이 되는 건가요???
코드의 흐름이 잘 이해가 안가서요...
#### CODE <a class='btn btn-default' href='/codes/40923'>Link</a>
```
public class Bacteria {
public static void main(String[] args) {
// 배열 생성
int[] bacteriaCountLogs = new int[10];
// 개체 수 기록
writeLog(bacteriaCountLogs);
// 결과 출력
printLog(bacteriaCountLogs);
}
// 박테리아의 개체 수를 기록
public static void writeLog(int[] logs) {
/* 해당 메소드를 완성하세요. */
for(int i = 0; i<logs.length; i++) {
logs[i] = (int) Math.pow(2, i);
}
}
// 배열을 입력받아, 해당 요소를 모두 출력
public static void printLog(int[] arr) {
System.out.printf("[");
for (int i = 0; i < arr.length; i++) {
System.out.printf("%d", arr[i]);
if (i != arr.length - 1) {
System.out.printf(", ");
}
}
System.out.printf("]");
}
}
```
#### INPUT
```
```
#### OUPUT
```
[1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
```
goodlife1359님의 답변
## 메소드를 두개 사용하는 목적
전체적인 코드의 흐름은 3단계 입니다.
1.크기가 10인 bacteriaCountLogs 배열을 생성 합니다.
int[] bacteriaCountLogs = new int[10];
2.writeLog 메서드의 파라미터로 bacteriaCountLogs 배열을 넘겨 반복문을 사용하여 배열 인덱스에 순차적으로 값을 넣어줍니다.
public static void writeLog(int[] logs) {
/* 해당 메소드를 완성하세요. */
for(int i = 0; i<logs.length; i++) {
logs[i] = (int) Math.pow(2, i);
}
}
3.printLog 메서드를 통해 bacteriaCountLogs 배열에 저장된 값을 반복문을 사용하여 출력해줍니다.
조건문은 배열의 마지막 인덱스에 저장된 값이 출력되고 난후 ,(콤마)를 출력하지 않기 위해 사용합니다.
public static void printLog(int[] arr) {
System.out.printf("[");
for (int i = 0; i < arr.length; i++) {
System.out.printf("%d", arr[i]);
if (i != arr.length - 1) {
System.out.printf(", ");
}
}
System.out.printf("]");
}
이렇게 3단계로 코드가 진행됩니다.