Using Language : Java
Using Tools : IntelliJ
- 프로그래머스 문제 소개
<문자열 내 마음대로 정렬하기>
대문자와 소문자가 섞여있는 문자열 s가 주어집니다.
s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요.
'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다.
단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.
s answer
"pPoooyY" true
"Pyy" false
문제 풀이 과정
p와 P는 같게, y와 Y는 같게 카운팅 되므로 s에서 받은 것 모두 소문자/대문자로 변환
문자열에 있는 단어가 P나 Y일 경우 카운팅 해주는 변수를 생성하여 카운팅
카운팅한 변수들을 비교하여 값이 다르면 false 반환
값을 반환한다.
< Solution5.java >
public class Solution5 {
boolean solution(String s) {
boolean answer = true;
int len = s.length();
int p=0;
int y=0;
s=s.toUpperCase();
for(int i=0;i<len;i++){
if (s.charAt(i)=='P'){
p++;
}
if (s.charAt(i)=='Y') {
y++;
}
}
if (p!=y){
answer=false;
}
return answer;
}
}
< Solution5Test.java >
import org.junit.Test;
import static org.junit.Assert.assertTrue;
public class Solution5Test {
@Test
public void 결과() {
Solution5 solution = new Solution5();
assertTrue("true",solution.solution("pPoooyY"));
}
}
이번 문제는 toUpperCase와 charAt함수를 사용하면 쉽게 풀리는 문제였다.
toUpperCase는 모든 영문자를 대문자로 변환해 주는 함수이다.
반대로 toLowerCase는 모든 영문자를 소문자로 변환해 주는 함수이다.
charAt함수는 문자열에서 지정한 index에 해당하는 문자 값을 반환해주는 함수이다.