문자열 내 p와 y의 개수

김나영·2023년 6월 18일
0

프로그래머스

목록 보기
14/39

문제 : 문자열 내 p와 y의 개수

풀이

boolean answer = true;
int countp = 0;
int county = 0;
s = s.toLowerCase(); // 대문 -> 소문   // toUpperCase() -> 소문자를 대문자로
  • boolean 타입의 변수 answer를 true로 선언

  • 'p'의 개수와 'y'의 개수를 0으로 초기화

  • 문자열 s를 toLowerCase()를 사용해 대문자를 소문자로 바꿔줌

String[] ans = s.split("");
  • 소문자로 바꿨던 문자열 s를 잘라서 String ans 배열에 넣음
for (int i = 0; i < s.length() ; i++) {}
  • p와 y의 개수를 세기 위해 for문을 사용하여 문자열의 길이만큼 반복 출력
if(ans[i].equals("p")){
  countp ++;
} else if (ans[i].equals("y")) {
  county++;
}
  • 만약 ans의 배열에 "p"가 있다면 p의 개수를 하나씩 카운트

  • 만약 ans의 배열에 "y"가 있다면 y의 개수를 하나씩 카운트

if (county == countp) {
   answer = true;
} else if (county == 0 && countp == 0) {
   answer = true;
} else answer = false;
  • 만약 p의 개수와 y의 개수가 같다면 true를 반환

  • 만약 y의 개수가 0이거나 p의 개수가 0이라면 true를 반환

  • 그것도 아니라면 false를 반환

전체 코드

class Solution {
    boolean solution(String s) {
        boolean answer = true;
        int countp = 0;
        int county = 0;
        s = s.toLowerCase(); // 대문 -> 소문   // toUpperCase() -> 소문자를 대문자로
        String[] ans = s.split("");
        for (int i = 0; i < s.length() ; i++) {
        if(ans[i].equals("p")){
        countp ++;
        } else if (ans[i].equals("y")) {
        county++;
        }
        if (county == countp) {
        answer = true;
        } else if (county == 0 && countp == 0) {
        answer = true;
        } else answer = false;
        }
        return answer;
    }
}

charAt을 사용한 코드

int p = 0;
int y = 0;
  • p의 개수와 y의 개수를 0으로 초기화
for (int i = 0; i < s.length(); i++) {}
  • p와 y의 개수를 세기 위해 for문을 사용하여 문자열의 길이만큼 반복 출력
if(s.charAt(i) == 'p' || s.charAt(i) == 'P') {
    p++;
}else if (s.charAt(i) == 'y' || s.charAt(i) =='Y'){
    y++;
}
  • charAt() 함수를 사용하여 string 타입으로 받은 문자열 s를 char 타입으로 바꿈

    • charAt() 함수 : string 타입으로 받은 문자열을 char 타입으로 한 글자만 받는 함수
  • i번째 값이 'p' 이거나 'P'를 가지고 있다면 p의 개수를 하나씩 카운트

  • 만약 i번째 값이 'y' 이거나 'Y'를 가지고 있다면 y의 개수를 하나씩 카운트

if (p == y) return true;
else return false;
  • 만약 y의 개수와 p의 개수가 같다면 true를 반환

  • 그게 아니라면 false를 반환

전체 코드

class Solution {
    boolean solution(String s) {
        int p = 0;
        int y = 0;
    for (int i = 0; i < s.length(); i++) {
        if(s.charAt(i) == 'p' || s.charAt(i) == 'P') {
            p++;
        }else if (s.charAt(i) == 'y' || s.charAt(i) =='Y'){
            y++;
        }
    }
    if (p == y) return true;
    else return false;

0개의 댓글