반응형
현대오토에버 코딩테스트를 보려고 하는데, C/C#으로 제한된 언어.. 문자열은 언어 가리지 않고 약하기 때문에 C strtok 개념을 정리해보려고 한다.
split 기능은 문자열의 필수 기능인데, C는 직접 구현하거나 include<string.h> strtok를 이용해야 한다.
https://softeer.ai/practice/6254
가장 기본 연습 풀이 문제 "근무시간"으로 적용해보았다.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
//5일동안 총 근로시간이 몇 분인가
// - 법정 근로시간 초과 x
// - 회사와 직원 사이 계약한 시간 이상이어야 함
int main(void)
{
int result = 0;
for(int i=0;i<5;i++){//1. 직원이 일한 시간 월~금 풀 시간을 입력 받는다.
char fullTime[12];
gets(fullTime);
//2. 시작시간 끝시간을 구한다.
char* startTime = strtok(fullTime, " ");
char* endTime = strtok(NULL, " ");
//3. 시작 시간 -> 분으로 계산
int start = ((startTime[0]-'0')*10+(startTime[1]-'0'))*60+((startTime[3]-'0')*10+(startTime[4]-'0'));
//4. 끝 시간 -> 분으로 계산
int end = ((endTime[0]-'0')*10+(endTime[1]-'0'))*60+((endTime[3]-'0')*10+(endTime[4]-'0'));
result+= end - start;
}
printf("%d", result);
return 0;
}
strtok은 처음에 특정 문자열로 split할 char[] 즉, string을 지정해주면, 자른 후 string을 기억하고 있다가 계속해서 split 결과를 주는 구동 방식이다.
이 때문에 그 다음 strtok에는 NULL을 넣어준다.
09:17 18:34
이러한 문자열을 받아서 " "으로 나눈다 치면, 한 번 더 :로 나누고 싶은데, 그게 어려웠다...(2번 나누는것은 더 알아봐야 할 일...)
반응형
'알고리즘 > 이론' 카테고리의 다른 글
LCS with Java (2) | 2023.12.30 |
---|---|
투포인터 (1) | 2023.11.28 |
SWEA 미로 1 문제를 통해 알아보는 DFS / BFS (0) | 2023.04.04 |
부분집합 / 조합 / 순열 / NEXT PERMUTATION 총정리 (0) | 2023.03.27 |
이진검색 & 정렬 정리 (0) | 2023.03.27 |