인프런 커뮤니티 질문&답변

근육만두님의 프로필 이미지
근육만두

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

[필수개념] split() 함수

split() 함수에서 pos변수타입을 long long 으로 선언한 이유

해결된 질문

작성

·

80

0

안녕하세요 큰돌님 강의 잘듣고있습니다.

image.png

 

위 사진은 교안에 나온 split함수 예시입니다

while 조건문에서 사용되는 find함수는 size_t 타입을 반환한다고 하는데 pos도 이에 맞춰서 size_t라는 타입으로 일치해줘야 하지 않나 하는 궁금증이 생겼습니다.

 

변수 pos를 size_t로 받지않고 longlong으로 받으시는 이유가있는걸까요?

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 근육만두님 ㅎㅎ

find함수는 size_t 타입을 반환한다고 하는데 pos도 이에 맞춰서 size_t라는 타입으로 일치해줘야 하지 않나 하는 궁금증이 생겼습니다.

>> 물론 size_t로 타입을 맞춰줘도 됩니다.

그러나 size_t의 경우 long long보다 더 큰 값이며 PC 가 64비트 운영체제라면 18446744073709551615라는 값을 가집니다.

만약 18446744073709551615가 나올경우 해당 배열을 순회하는 시간복잡도는 1조가 넘어가게 되며 보통 이런 경우의 문제는 나오지 않습니다.

이 때문에 size_t가 아닌 long long 으로 타입변환을 해도 됩니다.


또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


근육만두님의 프로필 이미지
근육만두

작성한 질문수

질문하기