7의 개수

nacSeo (낙서)·2024년 4월 11일
0

프로그래머스

목록 보기
145/169

문제 설명

머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요.

제한사항

1 ≤ array의 길이 ≤ 100
0 ≤ array의 원소 ≤ 100,000

나의 코드

class Solution {
    public int solution(int[] array) {
        int answer = 0;
        String[] strArr = new String[array.length];
        for(int i=0; i<array.length; i++) {
            strArr[i] = String.valueOf(array[i]);
        }
        for(int i=0; i<strArr.length; i++) {
            for(int j=0; j<strArr[i].length(); j++) {
                if(strArr[i].charAt(j)=='7') answer++;
            }
        }
        return answer;
    }
}

다른 사람 코드

class Solution {
    public int solution(int[] array) {
        int answer = 0;
        for(int a : array){
            while(a != 0){
                if(a % 10 == 7){
                    answer++;
                }
                a /= 10;
            }
        }
        return answer;
    }
}

0이 아닐 때 동안 10으로 나눠주면서 10으로 나눈 나머지가 7일 때 count 추가 (한 자리수씩 검사)

느낀 점

하나의 숫자에 7이 여러 번 나올 수도 있기 때문에 (ex.77, 777...) int배열을 String배열로 변환한 후, 배열마다 하나의 문자씩 '7'과 같을 때 count시켜주며 문제를 해결했다.
다른 사람 코드처럼 int배열 그대로 사용하면서, 나누기를 이용한다면 좀 더 효율적인 코드가 될 수 있을 것 같다.

profile
백엔드 개발자 김창하입니다 🙇‍♂️

0개의 댓글