본문으로 바로가기

 소가 길을 건너간 이유1

 

개발언어 : C#

 

C#은 c언어와 같이 scanf(%d %d) 와 같이 띄워쓰기 업력을 지원하지 않는 것 같다. ㅠ

(저가 모르는 걸 수도 있어요 ㅠ)

 

그래서

 v = Console.ReadLine();

 

이런식으로 문자열을 입력 받은 후

 

string[] s;

 s = v.Split(' ');

이렇게 공백 입력을 처리함으로 써 나눌 수 있습니다.

 

풀이

 

먼저 입력을 소 번호와 위치를 입력받게 되어있는데,

 

 

소 번호의 인덱스 값에 위치 값을 저장시키도록 하였습니다.

 

 

한마디로, 1번 소는 a[1]로 1의 인덱스를 가지는 위치 값으로 풀어보았습니다.

 

 

하지만 여기서 성공하겟지하고 풀어보았으나, 런타임 에러가 발생하였습니다. ㅠ

 

 

이유는 배열 a를 초기화 해줄 때 c값 까지만 초기화를 2로 해주게 되는데

 

 

c 값이 만약 8이라면

 

 

a[0~7] 까지 2로 초기화 해주어서 a[8] 즉 8번 소의 입력을 할 수 없기에 런타임 오류가 나는 겁니다.

 

 

그래서 결론은 배열의 크기를 +1정도만 더 늘려주면 됩니다.

 

int[] a = Enumerable.Repeat<int>(2, c+1).ToArray();

 

 

 

'Algorithm' 카테고리의 다른 글

[백준] C++ 1158번 요세푸스 문제  (0) 2020.11.04
[백준] C++ 1406번 에디터  (0) 2020.11.03
[백준] C++ 10799번-쇠막대기  (0) 2020.11.03
[백준] C++ 9012번 괄호 문제  (0) 2020.11.01
[백준] 알고리즘 1924번 - 2007년  (0) 2020.10.20