본문 바로가기
알고리즘/Programmers

[Programmers] 문자열 내 p와 y의 개수

by 소꿍 2021. 2. 2.

programmers.co.kr/learn/courses/30/lessons/12916

 

코딩테스트 연습 - 문자열 내 p와 y의 개수

대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를

programmers.co.kr

 

 

Java

 

public class Solution {

	static boolean solution(String s) {
        s = s.toLowerCase();
        int pCnt = 0;
        int yCnt = 0;
        
        for (int i = 0; i < s.length(); i++) {
        	if (s.charAt(i) == 'p') {
        		pCnt++;
                continue;
        	}
        	if (s.charAt(i) == 'y') {
        		yCnt++;
                continue;
        	}
        }
        if (pCnt != yCnt)
        	return false;
        
        return true;
	}


}

 

처음에 s.equals()를 썼었는데,

s.equalsIgnoreCase()를 쓰면 대소문자를 가리지 않고 비교해 준다고 한다.

=> toLowerCase()나 toUpperCase() 없이 코드 작성 가능

 

그래서 코드를 수정해 봤다.

 

public class Solution {

	static boolean solution(String s) {
        int cnt = 0;
        
        for (int i = 0; i < s.length(); i++) {
        	if (String.valueOf(s.charAt(i)).equalsIgnoreCase("p")) {
        		cnt++;
        		continue;
        	}
        	if (String.valueOf(s.charAt(i)).equalsIgnoreCase("y")) {
        		cnt--;
        		continue;
        	}
        }
        if (cnt == 0)
        	return true;
        
        return false;
	}
}

 

근데 위의 코드보다 시간이 더 오래 걸린다..

'알고리즘 > Programmers' 카테고리의 다른 글

[Programmers] 약수의 개수와 덧셈  (0) 2022.06.15
[Programmers] 예산  (0) 2021.05.06
[Programmers] 서울에서 김서방 찾기  (0) 2021.01.22
[Programmers] 문자열 다루기 기본  (0) 2020.10.04
[Programmers] k번째 수  (0) 2020.10.03

댓글