이 구간에서는 단순히 데이터를 옮기는 것을 넘어, 특정 규칙에 따라 데이터를 가공하고 정렬하는 능력이 요구됩니다.
1. 문자열 슬라이싱과 찾기 (61~68번)
문자열 내에서 특정 패턴을 찾거나, 원하는 구간을 정확히 추출하는 문제입니다.
- 주요 문제: 세로 읽기, 접미사 배열, 문자열 뒤집기, 특정 문자열 찾기 등
- 핵심 포인트:
- 2차원 인덱스 변환: '세로 읽기' 문제처럼 1차원 문자열을 가로 길이가 m인 2차원 판으로 생각하고 (row * m) + col 공식을 사용하는 법을 강조하세요.
- qsort와 strcmp: '접미사 배열' 정렬 시, 이중 포인터(char**)를 qsort에 넣을 때 비교 함수에서 어떻게 역참조하는지가 가장 큰 복습 포인트입니다.
2. 배열(리스트) 변환과 필터링 (69~74번)
주어진 배열에서 조건에 맞는 원소만 골라내거나 새로운 순서로 재배치하는 로직입니다.
- 주요 문제: 순서 바꾸기, 왼쪽 오른쪽, 홀수 vs 짝수, n개 간격의 원소들 등
- 핵심 포인트:
- 메모리 복사 전략: 배열을 회전시키거나 자를 때, memcpy를 사용하여 한 번에 복사하는 것이 루프를 돌리는 것보다 효율적임을 언급하세요.
- 동적 할당 크기: 결과 배열의 크기가 입력값에 따라 변하는 경우, malloc 전 정확한 count를 계산하는 과정을 정리하세요.
3. 문자열-정수 상호 변환 및 연산 (75~80번)
문자로 된 숫자를 계산하거나, 정수를 다시 문자열로 바꾸는 기초 연산 구간입니다.
- 주요 문제: 문자열 정수의 합, 문자열을 정수로 변환하기, 0 떼기, 9로 나눈 나머지 등
- 핵심 포인트:
- 아스키 코드 활용: atoi 대신 c - '0' 연산을 통해 단일 문자를 숫자로 바꾸는 기법은 보안 코딩과 알고리즘 모두에서 필수입니다.
- 9의 배수 성질: '9로 나눈 나머지' 문제에서 각 자릿수의 합을 이용하는 수학적 접근법을 소개하면 글의 깊이가 깊어집니다.
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [C] 코딩 기초 트레이닝 (101 ~ 124) (0) | 2026.04.08 |
|---|---|
| [C] 코딩 기초 트레이닝 (81 ~ 100) (0) | 2026.04.05 |
| [C] 코딩 기초 트레이닝 (41 ~ 60) (1) | 2026.04.03 |
| [C] 코딩 기초 트레이닝 (21 ~ 40) (0) | 2026.04.03 |
| [C] 코딩 기초 트레이닝 124제 (1 ~ 20) (0) | 2026.04.01 |