목록프로그래밍👩🏻💻/알고리즘 (27)
suyeonme
해결 1) public int[] reverseArr(int[] arr) { for(int i = 0; i < arr.length /2; i++) { int temp = arr[i]; arr[i] = arr[arr.length - i -1]; arr[arr.length - i -1] = temp; } return arr; } 해결 2) public void reverseArr2(int[] arr) { for(int i = 0; i < arr.length / 2; i++) { swap(arr, i, arr.length - i -1); } } public void swap(int[] arr, int idx1, int idx2) { int temp = arr[idx1]; arr[idx1] = arr[idx2]..
for loop은 단순하다. 하지만 for loop도 어떻게 작성하느냐에 따라서 퍼포먼스가 달라진다. 예를 들어, n만큼 +와 -를 번갈아 출력하는 코드를 짠다고 해보자. 가장 쉽게 떠올릴 수 있는 방법이다. 하지만 아래와 같이 코드를 작성해야할 경우 2가지 문제가 있다. 1. 반복할 때 마다 if문을 실행해야한다. 2. 변경할 때 유연하게 대응하기 어렵다. (i값을 바꾸고 싶은 경우 i와 n의 값을 마찬가지로 수정해야한다) for(int i = 0; i < n; i++) { if(i % 2 == 0) { System.out.print("+") } else { System.out.print("-") } } 위의 코드를 아래와 같이 최적화할 수 있다. 아래 코드는 반복마다 if문을 실행하지 않는다. 또한 ..
Parameter, Argument 함수에 전달되는 변수는 parameter이다. 함수를 호출할 때 넘기는 value는 argument이다. public int sum(int num) {} sum(3); Operators 단항 연산자(unary operator): a++ 2항 연산자(binary operator): a < b 3항 연산자(ternary operator): a ? b : c 사전 판단 반복, 사후 판단 반복 사전 판단 반복: 실행 전에 반복을 계속할지 판단한다. 따라서 loop 본문을 한번도 실행하지 않을 수도 있다. (while loop, for loop) 사후 판단 반복: 실행 후에 반복을 계속 할지 판단한다. 따라서 루프 본문을 한번은 반드시 실행한다. (do-while loop) 단..