Java

[JAVA] String과 char

LimeCoding 2023. 8. 7. 17:35

프로그래머스 문제를 풀다 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로 비교하는 것이 좋다.