프로그래머스 문제를 풀다 String과 char의 성능에 대한 문제를 발견했다.
Char를 이용한 비교
class Solution {
boolean solution(String s) {
boolean answer = true;
int index = 0;
char ch = ' ';
if(s.charAt(0) == ')') return false;
for(int i = 0; i < s.length(); i++) {
ch = s.charAt(i);
if(ch == '(') index++;
else index--;
if(index < 0)
return false;
}
if(index == 0)
return true;
return false;
}
}
String을 이용한 비교
class Solution {
boolean solution(String s) {
boolean answer = true;
int index = 0;
String[] strArr = s.split("");
if(strArr[0].equals(")")) return false;
for(String str: strArr) {
if(str.equals("(")) index++;
else index--;
if(index < 0)
return false;
}
if(index == 0)
return true;
return false;
}
}
두 코드 모두 동일한 방식으로 수행된다. 차이점이 있다면 String으로 비교하느냐 char로 비교하느냐인데 성능에서는 꽤 많은 차이를 보여주고 있다. 성능이 중요하다면 되도록 char로 비교하는 것이 좋다.
'Java' 카테고리의 다른 글
[JAVA] Field와 Property (1) | 2023.10.02 |
---|---|
[JAVA] 프로그래머스 멀리 뛰기 (0) | 2023.08.10 |
[JAVA] 최대 공약수와 최소 공배수 구하기 (0) | 2023.08.09 |
[JAVA] Comparator와 람다함수를 이용한 정렬 (0) | 2023.08.03 |
[자바] 패키지에 클래스 생성이 안될 때 (0) | 2023.03.21 |