[프로그래머스/JAVA] Lv.0 7의 개수

또치·2023년 1월 23일
0

프로그래머스 JAVA

목록 보기
11/20
post-thumbnail

7의 개수

🥝기억하고 싶은 부분🥝

1. int 배열 String 변환
계속 써먹는데 자꾸 까먹어서 찾네...
Arrays.toString(배열)
String s=Arrays.toString(array)
2. 정규표현식 사용
문자열에서 정규표현식 사용하려면 replace말고 replaceAll로 해야함!!
replaceAll("[^7]", "")

🎯 문제

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

<제한사항>
1 ≤ array의 길이 ≤ 100
0 ≤ array의 원소 ≤ 100,000
arrayresult
[7, 77, 17]4
[10, 29]0

답안

import java.util.Arrays;

class Solution {
    public int solution(int[] array) {
        String s="";
        		
		s=Arrays.toString(array).replaceAll("[^7]", "");
        return s.length();
    }
}

🧵 과정

조금 이상하게 푼것 같긴 한데 암튼...
첨에는 array에 있는 모든 원소를 문자열 하나에 넣고 반복문 돌려가지고 7의 개수를 찾으려 그랬는데 원소 한개가 최대 100,000까지 돼서 너무 길어질 것 같기도 해서 그렇게 안풀었는데 생각해보니까 그러면 77같은 숫자는 찾기 힘들었을 것 같아
암튼 그래서 7로 나누거나 그래야 되나 싶었는데 규칙 생각하기가 힘들어서 그냥 단순하게 int배열을 문자열로 바꿔줄때 애초에 replace로 7이 아닌 다른 글자면 공백처리해서 없애버리고 그 문자열의 length를 반환하는식으로 풀었다.
근데 다른 사람들 푼거 보니까 규칙이라 할것도 없었어 좀만 더 생각했으면 이렇게도 풀 수 있었을텐데 아쉽다...while문 안에서 10으로 나머지를 구했을때 7이면 값을 올려주고 기든 아니든 10으로 나눈 다음에 또 반복하고 하면 되는거였어

    while(i != 0) {
          if(i % 10 == 7) answer++;
          i /= 10;
   }

0개의 댓글