https://programmers.co.kr/learn/courses/30/lessons/12916
풀이
charAt()은 string 타응로 받은 문자열을 char 타입으로 한 글자만 받는 함수이다.
문자열의 개수를 세어주는 함수 countChar()을 새롭게 정의했다.
대문자와 소문자의 아스키코드 차이는 32라 -32를 해줬다.
class Solution {
boolean solution(String s) {
return (countChar(s,'p') == countChar(s,'y')) ? true:false;
}
int countChar(String s, char c){
int count = 0;
for(int i =0; i<s.length();i++){
if(s.charAt(i) == c||s.charAt(i)==(c-32))
count++;
}
return count;
}
}
다른사람풀이
일단 toUpperCase()나 toLowerCase()함수를 쓰면 아스키코드를 고민할필요가없었을텐데 왜 생각하지못했는지.
밑의 코드는 count 변수 하나만 사용한게 아이디어가 좋다고 생각해서 가져와봤다.
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--;
}
return count == 0;
}
}
'Algorithm & Data Structure > 프로그래머스' 카테고리의 다른 글
[Java] 프로그래머스 : 문자열 내림차순으로 배치하기 (feat. String <-> char[]) (0) | 2022.01.31 |
---|---|
[Java] 프로그래머스 : 서울에서 김서방 찾기 (0) | 2022.01.31 |
[Java] 프로그래머스 : 가운데 글자 가져오기 (0) | 2022.01.31 |
[Java] 프로그래머스 : 문자열 다루기 기본 (0) | 2022.01.31 |
[Java] 프로그래머스 : 두 개 뽑아서 더하기 (0) | 2022.01.31 |