티스토리 뷰

 

이번 문제는 여느 문제와 마찬가지로 나머지 연산으로 쉽게 해결될 문제였다.

 

using System;

public class Solution {
    public int solution(int num, int k) {
        int answer = -1;
        int stack = 1;
        
        for (; num > 0; num /= 10, stack++){
            // 가장 마지막 자리를 찾을 경우
            //if(answer < 0 && num % 10 == k)
            // 가장 앞 자리를 찾을 경우
            if(num % 10 == k)
                answer = stack;
        }
        
        return (answer > 0) ? stack - answer : answer;
    }
}

 

문제를 해결하며 동일한 수가 나오는 경우 앞자리를 찾는지 뒷자리를 찾는지 잠시 헷갈려서 그냥 둘다 가능하게 만들어 버렸다.

 

다른 분들의 코드 중에는 가장 많은 비중이 숫자를 문자열로 변경하여 일치하는 문자의 첫 자리를 찾는 것이었다.

 

using System;

public class Solution {
    public int solution(int num, int k) {
        int answer = num.ToString().IndexOf(k.ToString()) + 1;
        return answer == 0 ? answer - 1 : answer;
    }
}

 

문자열 캐스팅에 탐색 함수까지 실행되니 상상이상의 속도가 걸렸다.

물론 저정도는 사람이 체감이 되진 않겠지만..... 저런 경우가 많다면 문제가 되겠지.

최근에 올라온 글
최근에 달린 댓글
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함