상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다. 상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다. 두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.
// 숫자 거꾸로 만들기 for(int i=0;i<2;i++){ char[] originNum = nums[i].toCharArray(); for(int j=2; j>=0; j--){ convertNum[i] += originNum[j]; } }
// 최대값구하기 -> 4가지방식을 사용할 수 있다. int max = Integer.parseInt(convertNum[0]); if(max < Integer.parseInt(convertNum[1])){ max = Integer.parseInt(convertNum[1]); } System.out.println(max); } }
최대값 구하는 방법에 따른 성능 비교
최대값은 정말 다양한 방식으로 구할 수 있다. 메모리와 런타임에 얼마나 영향을 미치는 지 궁금하여 최대값부분만 4가지 방법으로 바꿔서 각각 성능을 비교해보았다.
### 코드1: 변수1개+if문사용
1 2 3 4 5 6
// 최대값구하기 int max = Integer.parseInt(convertNum[0]); if(max < Integer.parseInt(convertNum[1])){ max = Integer.parseInt(convertNum[1]); } System.out.println(max);
### 코드2: 모두 변수로 처리
1 2 3 4 5 6 7 8
// 최대값구하기 int num1 = Integer.parseInt(convertNum[0]); int num2 = Integer.parseInt(convertNum[1]); if(num1 > num2){ System.out.println(num1); }else{ System.out.println(num2); }
### 코드3: 모두 변수 + 삼항연산자
1 2 3 4
// 최대값구하기 int num1 = Integer.parseInt(convertNum[0]); int num2 = Integer.parseInt(convertNum[1]); System.out.println(num1 > num2 ? num1 : num2);