알고리즘 문제를 풀다 보면 문자열을 루프문을 이용하여 각 문자를 접근하게 됩니다.
문자를 접근하기 위해서 먼저 문자열의 길이를 구한 다음
해당 문자열의 길이만큼 반복문을 돌려서 문자에 접근을 하게 됩니다.
하지만
문자열 길이를 가져 올 때 불필요한 시간 낭비가 이루어 지게 됩니다. (불필요한 시간 : 문자열 길이를 가져오는 시간)
[부분 코드]
1 2 3 | for (int i = 0; arr[i]; i++) { printf("%c", arr[i]); } | cs |
위와 같이 사용한다면 문자열의 길이를 얻어오지 않고도
문자에 접근 할 수 있기 때문에 시간을 좀 더 절약 할 수 있습니다.
[전체 코드]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int _strlen(char *arr) { int cnt = 0; while (!arr) arr++,cnt++; return cnt; } int main() { char arr[100]; scanf("%s", arr); //비효율적인 코드 //문자열의 사이즈를 구하는 불필요한 시간 낭비 int strSize = _strlen(arr); for (int i = 0; i<strSize; i++) { printf("%c", arr[i]); } //문자열의 size를 구하지 않기 때문에 코드 속도가 더 빠름 for (int i = 0; arr[i]; i++) { printf("%c", arr[i]); } printf("\n"); return 0; } | cs |
'알고리즘 > ACM 관련 정보 or 팁' 카테고리의 다른 글
공부 해야 할 알고리즘 리스트 (0) | 2019.01.16 |
---|---|
알고리즘 ACM 문제 출제 사이트 (0) | 2014.05.23 |