소가 길을 건너간 이유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 |