Posis

[프로그래머스] 7의 개수 본문

알고리즘/프로그래머스

[프로그래머스] 7의 개수

CooNiHong 2022. 12. 7. 17:18

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/120912

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명

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

제한사항

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

입출력 예

array result
[7, 77, 17] 4
[10, 29] 0

입출력 예 설명

입출력 예 #1

  • [7, 77, 17]에는 7이 4개 있으므로 4를 return 합니다.

입출력 예 #2

  • [10, 29]에는 7이 없으므로 0을 return 합니다.

나의 풀이

Java

class Solution {
    public int solution(int[] array) {
        int answer = 0;
        String str = "";
        for(int s : array) {
            str += s;
        }
        str = str.replaceAll("[^7]", "");
        answer = str.length();
        return answer;
    }
}

이 문제도 String으로 연산하니 통과시간이 오래걸려서 한번 StringBuilder로 리팩터링 해봤습니다.

class Solution {
    public int solution(int[] array) {
        int answer = 0;
        StringBuilder sb = new StringBuilder();
        for(int s : array) {
            sb.append(s);
        }
        String str = sb.toString();
        str = str.replaceAll("[^7]", "");
        answer = str.length();
        return answer;
    }
}

JavaScript

function solution(array) {
    let answer = array.join('').split('').filter((value) => value === '7').length;
    return answer;
}

1. 배열 array를 합치고 한글자씩 쪼갠다.

2. filter 메서드를 이용해 7만 배열에 남겨두고 길이값을 구한다.

728x90