문제 설명
머쓱이는 행운의 숫자 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
배열 그대로 사용하면서, 나누기를 이용한다면 좀 더 효율적인 코드가 될 수 있을 것 같다.