문제 풀기/C#

43. 크기가 작은 부분

kagan-draca 2025. 1. 24. 14:24

 

기본 틀 :

 

using System;

public class Solution {
    public int solution(string t, string p) {
        int answer = 0;
        return answer;
    }
}

 

문제 푸는 방법은 간단하다.

 

입출력 예시를 잘 보면 매개변수로 주어진 t가 t.Length - p.Length + 1 만큼 p.Length의 길이로

쪼개진 개수가 생성되는 것을 파악할 수 있다.

 

이 점을 활용해서 반복 횟수로 지정해주고, 반복문 내에서

t.Substring(현재 반복 횟수, p.Length)로 원하는 문자열을 추출한 후

정수형으로 형 변환을 시켜주면 된다.

 

이렇게 만들어진 정수와 p를 정수형으로 바꾼 변수를 비교해서 작거나 같으면 count를 증가시켜주면 된다.

 

이때, 주의해야할 점은 p의 길이가 18 보다 클 수 있다는 사실인데

 

이는 정수형 타입을 int가 아닌 long으로 사용해야 한다!

(이것 때문에 런 타임 오류가 발생해서 당황 했습니다.)

 

using System;
using System.Linq;

public class Solution 
{
    public int solution(string t, string p) 
    {
        int count = 0;
        for(int i = 0; i < t.Length - p.Length + 1; i++)
        {
            long temp  = long.Parse(t.Substring(i, p.Length));
            count += temp > long.Parse(p) ? 0 : 1;
        }
        
        return count;
        
    }
}

 

'문제 풀기 > C#' 카테고리의 다른 글

45. 시저 암호  (0) 2025.01.24
44. 최소 직사각형  (0) 2025.01.24
42. 삼총사  (0) 2025.01.23
41. 이상한 문자 만들  (0) 2025.01.23
40. 3진법 뒤집기  (0) 2025.01.22