99클럽 코테 스터디 3일차 TIL

Marin·2024년 7월 24일
0

TIL

목록 보기
3/17
post-thumbnail

1 | 오늘의 문제

1) 사고

  1. 문자열을 char의 배열로 생각했을 때, 각 element를 비교할 수 있겠다.
  2. p와 y의 개수를 세는 방법
    • for문을 이용해 count 변수의 값 증가하는 방식
    • 애초에 개수가 나오는 방법이 있나?
  3. 대소문자 구분 없이 비교해야 하므로 활용할 수 있는 메서드가 어떤 것이 있을까?

2) 풀이

class Solution {
    boolean solution(String s) {
        boolean answer = false;

        s = s.toLowerCase();
        int countP = 0;
        int countY = 0;
        
        for (int i : s.toCharArray()){
            if(i == 'p') {
               countP++;
            } else if(i == 'y'){
               countY++;
            }
        }

        if(countP == countY){
            answer = true;
        }
        
        return answer;
    }
}
  1. toLowerClass()로 모두 소문자로 바꿔놓고 시작하기
  2. p, y의 개수를 세는 count 변수 설정
  3. toCharArray()로 String을 array로 변경

3) 개선

프로그래머스에서 다른 분들의 풀이를 보고 개선하기

1. count 변수를 2개나 사용하는 것을 줄일 수 있다.

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--;
        }

        if (count == 0)
            return true;
        else
            return false;
    }
}

프로그래머스에서 다른 분의 풀이를 참고했다.

2. 람다식 사용

class Solution {
    boolean solution(String s) {
        s = s.toUpperCase();

        return s.chars().filter( e -> 'P'== e).count() == s.chars().filter( e -> 'Y'== e).count();
    }
}

람다식에 대해서 잘 몰라서 정처기 시험 끝내면 한 번 날 잡고 공부를 해야 할 것 같다. 문제를 많이 안 풀어봐서 함수 활용을 잘 못하는게 느껴진다.

2| 정리

오늘의 키워드

  • toLowerCase(), toUpperCase()
  • toCharArray()
  • 람다식
  • count 변수 줄이기
profile
대학생 | BE | 취준 | Fight or Flight

0개의 댓글