작성
·
208
0
선생님 42번문제에서는 입력받을때 i=0부터 받으셨는데 43번 이 문제에서는 왜 i=1부터 받으시나요 이런것들 명확하게 알려주시면 감사하겠습니다 너무 헷갈려서요,, 문제에서 확인해봤는데 0이나 1이나 차이가 없는데 어떤문제에서는 인덱스를 0부터 돌리시고 어떤문제에서는 1부터 돌리시는데 답변좀 해주세요 ㅠㅠ
답변 1
0
0부터 돌리냐 1부터 돌리냐가 중요한 것은 아니고 배열의 어디부분부터 쓸 것인가가 중요합니다.
만일 10개의 데이터를 입력하고 그 중에 n번째를 나타내야하는 문제가 있다면,
arr[10] 이라는 배열이 있으면 [0]부터 [9]까지 사용가능하고 갯수는 10칸입니다. 그 중 7번째의 데이터를 출력하려면 [7]이 아니고 [6]을 해야합니다. 배열은 [0]부터 첫번째 이니까요. 그러므로 arr[n-1]이 되겠죠.
근데 보통 문제에 n번째의 위치를 가리키는 문제가 많기때문에, 애초에 arr[11]를 만들어서 [0]번째 인덱스는 버리고
[1]부터 [10]까지 10개를 사용하는 겁니다. 이러면 7번째 데이터 출력할 때 그냥 [7] 입력하면 됩니다.
이렇게 사용하면 n번째의 위치를 나타낼때, 바로 [n]를 보내면 나오니 직관성이 쉬워지는 장점이 있지만, [0]번째 라는 한 칸을 버리게 되므로 메모리가 낭비 됩니다. 하지만 이런 코딩테스트에서는 문제 없습니다.
한마디로 0부터 시작하는거나 1부터 시작하는것은 아무런 의미가없습니다 중요한건 몇 번의 포문을 돌고 올바른 답을 내는가가 중요합니다.