5분씩 총 30분동안 네비게이터와 드라이버의 역할을 번갈아가며 페어프로그래밍을 진행했다.
페어 프로그래밍의 미션은 버블정렬을 구현하는 것이었다.
이번 기회를 통해, 내가 어떤 부분에서 정확히 알고 있고, 모르는지 확인할 수 있었다.
채윤이랑 함께 페어 프로그래밍으로 버블정렬을 구현하면서 즐거웠고, 인상깊어서 구현 방법도 잊어버리지 않을 것 같다!
그래서 페어 프로그래밍을 하면서 느낀 점을, KPT 회고로 남겨보고자 한다.
Keep(현재 잘하고 있는 부분, 만족하는 부분)
- 상대방이 어디까지 내가 표현한 것을 이해하고 있는지, 계속 확인하고 표현하고자 노력했던 것
- 대화를 하면서, 상대방의 기분이 상하지 않도록 표현 하나하나를 조심히 한 것
Problem(개선이 필요하다고 생각하는 부분)
- 상대방이 이해할 수 있도록, 내가 생각하는 것을 쉽게 표현하는 것이 조금 부족한 것 같다. 즉, 나만의 용어가 아닌 상대방과 내가 모두 이해할 수 있는 용어로 표현하는 습관, 그리고 말끝을 흐리지 않고 명확하게 표현하는 습관을 길러야겠다.
Try(Problem에 대한 해결책, 당장 실행 가능한 것)
- java를 공부하고 있는 현재, 알고 있다고 생각하고 넘겼던 것에 대해 내가 말로 표현할 수 있는지 확인하고 넘어가야겠다.
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] input = br.readLine().split(" ");
int[] arr = new int[7];
for(int i=0; i<7; ++i){
arr[i] = Integer.parseInt(input[i]);
}
int[] newArr = bubble(arr);
for(int i=0; i<7; ++i){
System.out.println(newArr[i]);
}
for(int i=0; i<7; ++i){
System.out.println(arr[i]);
}
}
public static int[] bubble(int[] arr){
for(int i=0; i<7; ++i){
for(int j=0; j<7-i-1; ++j){
if(arr[j] > arr[j+1]){
int temp = arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
return arr;
}
}
그런데 main method에서의 arr도 정렬이 된 것을 알 수 있었다.
바로 referece를 넘겨줘서 그렇다는 특징때문이다.
그러면 초기에 입력받았던 arr 배열은 그대로 두고 싶다면? arr.clone() 을 통해 값을 복사하는 것이다.
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] input = br.readLine().split(" ");
int[] arr = new int[7];
for(int i = 0; i < 7; ++i) {
arr[i] = Integer.parseInt(input[i]);
}
int[] newArr = bubble(arr);
for(int i = 0; i < 7; ++i) {
System.out.println(newArr[i]);
}
for(int i = 0; i < 7; ++i) {
System.out.println(arr[i]);
}
}
public static int[] bubble(int[] arr) {
// 배열의 복사본 생성
int[] newArr = arr.clone();
for(int i = 0; i < 7; ++i) {
for(int j = 0; j < 7 - i - 1; ++j) {
if(newArr[j] > newArr[j + 1]) {
int temp = newArr[j];
newArr[j] = newArr[j + 1];
newArr[j + 1] = temp;
}
}
}
return newArr;
}
}