https://programmers.co.kr/learn/courses/30/lessons/12916
코딩테스트 연습 - 문자열 내 p와 y의 개수
대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를
programmers.co.kr
풀이
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 |