Algorithm/BAEKJOON

[C#]백준 5671 호텔 방 번호 - Hide

zz0zz9 2024. 10. 7. 23:08
반응형
반응형

https://www.acmicpc.net/problem/5671

문제 요약

주어진 범위에서 중복이 없는 숫자의 개수 출력하기

 

 

 

참고

아무것도 입력하지 않았을 때 입력이 끝난다.

 

 

런타임 에러(Segfault)
var s = new List<int>();
while ((s = Console.ReadLine().Split().Select(int.Parse).ToList()) != null)
{
    int c=0;
    for (; s[0] <= s[1];)
    {
        var t = s[0]++.ToString();
        c += (t.Count() == t.Distinct().Count()) ? 1 : 0;
    }
    Console.WriteLine(c);
}

while문에서 런타임 에러 뜬다.

 

맞은 풀이
var s = "";
while ((s = Console.ReadLine()) != null)
{
    var n = s.Split().Select(int.Parse).ToList();
    int c = 0;
    for (; n[0] <= n[1];)
    {
        var t = n[0]++.ToString();
        c += (t.Count() == t.Distinct().Count()) ? 1 : 0;
    }
    Console.WriteLine(c);
}

 

결국 문자열 변수 s에 입력을 담고, 그 s를 int형 리스트 n으로 새로 만들어야 했다.

 

for문은 n[0]에서 n[1]까지 반복문을 돌린다.

그 안에서 n[0]을 문자열로 바꿔주고 1씩 증가시키고,

t의 길이와 t에서 중복 제거했을 때의 길이가 같으면 c에 +1, 아니면 +0을 해준다.

그리고 출력


오늘 하루종일 몇문제 풀었는데 다 막혀서 고생하다가 이거 하나 겨우 풀었네 진쯔...ㅡㅡ

아 힘들어!!!!!!!!!!!!!!!!!!!!!짜ㅣ증나

이제 밥먹어야지

반응형