Solution 1) 내 풀이
class Solution {
    public int solution(int[] array) {
        int cut = 0;
        String[] strAraay = new String[array.length];

        for (int i = 0; i < array.length; i++) {
            strAraay[i] = Integer.toString(array[i]);
        }

        for (int i = 0; i < strAraay.length; i++) {
            for (char tmp : strAraay[i].toCharArray()) {
                if (tmp == '7') {
                    cut++;
                }
            }
        }
      return cut;
    }
}

 

Solution 2) 다른 사람의 풀이
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;
    }
}

 

코드 및 문제 리뷰

int 배열의 수를 보고 7이 몇번 등장하는지 카운트해서 반환하는 문제이다.

 

나는 int 배열을 string 배열로 만드는 초기작업을 거쳐 반복문을 돌며 char 형으로 == 7 을 체크해 카운트를 올리는 방식으로 풀이했다.

다른 사람의 풀이를 보니 형변환 없이 수학적으로 풀어낸 모습을 볼수 있었다. 나머지 연산자는 흔히 쓰이지만 항상 생각해내지 못하는 것 같다. String 배열이 아니었다는점, int 형으로 주어진 문제였으니 형변환 없이 나머지 연산을 쓰는 방법도 한번 더 생각해봐야겠다.

+ Recent posts