[programmers] 문자열 내 p와 y의 개수 (java) -1level

2022. 2. 18. 09:41Algorithm/Programmers

문제 설명

 

 

문자열 s로 입력받을 때 p와 y의 개수가 같으면 true, 다르면 false를 구하면 되는 문제이다.

(조건은 대소문자 구별하지않고 두 문자가 모두 없다면 true를 출력)

 

 

문제 해결

 

public class 문자열내p와y의개수 {
    boolean solution(String s) {
        // 문자열 내 p와 y의 개수 같으면 true, 다르면 false
        boolean answer = true;
        int p = 0, y = 0;

        char[] arr = s.toCharArray();
        for (int i = 0; i < arr.length; i++){
            if(arr[i] == 'p' || arr[i] == 'P') p++;
            else if(arr[i] == 'y'|| arr[i] == 'Y') y++;
        }
        if(p==0 && y==0) answer = true;
        else if(p == y) answer = true;
        else answer = false;

        return answer;
    }
}

 

+ ) 다른사람의 풀이

 

모든 문자열을 대문자나 소문자로 통일시키고 변수 하나로 카운트를 플러스 마이너스하여 개수를 구했다.

효율성 측면에서 도움받은 코드이다.  더 집중해서 생각해보자.

class Solution {
    boolean solution(String s) {
        s = s.toLowerCase();
        int count = 0;

        for (int i = 0; i < s.length(); i++) {

            if (s.charAt(i) == 'p')
                count++;
            else if (s.charAt(i) == 'y')
                count--;
        }

        if (count == 0)
            return true;
        else
            return false;
    }
}

 

 

 

728x90