이번 구간은 단순한 입출력을 넘어, 조건에 따른 수열 변환과 문자열의 특정 구간을 자유자재로 다루는 능력이 핵심입니다.
1. 문자열 심화 조작 (41~47번)
문자열의 앞뒤를 자르거나, 특정 문자를 찾아 바꾸는 문제들이 포진해 있습니다.
- 주요 문제: 문자열의 앞의 n글자, 접미사인지 확인하기, 문자열의 뒤의 n글자 등
- 핵심 포인트:
- 포인터 연산: my_string + (전체길이 - n)과 같은 포인터 덧셈을 활용하면 별도의 복사 루프 없이도 원하는 지점부터 문자열을 읽을 수 있습니다.
- strncpy 활용: 특정 개수만큼만 복사할 때는 strcpy보다 strncpy가 안전합니다. 단, 마지막에 \0을 수동으로 넣어주는 것을 잊지 마세요.
2. 조건 기반 수열 변환 (48~53번)
배열의 각 원소를 체크하여 특정 조건(홀짝, 크기 비교 등)에 따라 값을 변경하는 로직입니다.
- 주요 문제: 조건에 맞게 수열 변환하기 1, n보다 커질 때까지 더하기, 길이에 따른 연산 등
- 핵심 포인트:
- 누적 연산: answer += arr[i] 또는 answer *= arr[i]를 수행할 때 초기값(0 또는 1) 설정을 주의해야 합니다.
- Early Exit: 'n보다 커질 때까지 더하기' 문제처럼 조건이 충족되는 순간 break나 return을 사용하여 불필요한 연산을 줄이는 것이 효율적입니다.
3. 리스트(배열) 가공 및 필터링 (54~60번)
특정 인덱스의 원소를 가져오거나, 규칙에 따라 새로운 배열을 만드는 구간입니다.
- 주요 문제: 5명씩, 할 일 목록, 홀수 vs 짝수, n개 간격의 원소들 등
- 핵심 포인트:
- 인덱스 점프: i += n을 활용하여 특정 간격으로 배열을 순회하는 테크닉을 익힐 수 있습니다.
- 이중 포인터 할당: '할 일 목록'처럼 문자열 배열을 반환해야 할 때는 char** 타입의 메모리 할당과 각 문자열의 Deep Copy(strcpy)가 보안상 매우 중요합니다.
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [C] 코딩 기초 트레이닝 (81 ~ 100) (0) | 2026.04.05 |
|---|---|
| [C] 코딩 기초 트레이닝 (61 ~ 80) (0) | 2026.04.05 |
| [C] 코딩 기초 트레이닝 (21 ~ 40) (0) | 2026.04.03 |
| [C] 코딩 기초 트레이닝 124제 (1 ~ 20) (0) | 2026.04.01 |
| [C] 프로그래머스 코딩 테스트 입문 (0) | 2026.04.01 |