Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
| 29 | 30 | 31 |
Tags
- 태어난김에 보스까지
- https://hjmag1120.tistory.com/
- https://ji-han.tistory.com/
- https://mynameiskgws.tistory.com/
- 이리5조
- https://vetenir.tistory.com/
- https://eo-oe.tistory.com/
- 스파르타코딩클럽
Archives
- Today
- Total
info8995 님의 블로그
27일차(코딩테스트 문제풀이) 본문
1. 문제 요약
- 공백으로 단어를 구분하여 각 단어에서 짝수 인덱스는 대문자, 홀수 인덱스는 소문자로 변환하는 문제.
- 예: "try hello world" → "TrY HeLlO WoRlD"
2. 풀이 코드

3. 문제 해결 과정
- 공백 처리: 공백이 등장하면 단어의 인덱스를 초기화(a = 0)하여 새로운 단어로 간주.
- 짝수/홀수 인덱스 처리:
- 짝수 인덱스는 소문자를 대문자로 변환.
- 홀수 인덱스는 대문자를 소문자로 변환.
- 아스키 코드 활용:
- 소문자('a'~'z')는 -32를 하면 대문자가 됨.
- 대문자('A'~'Z')는 +32를 하면 소문자가 됨.
4. 겪었던 어려움
- 공백에서 단어를 나누는 방법 고민:
- 공백을 기준으로 인덱스를 초기화해야 한다는 점을 이해하는 데 시간이 걸렸음.
- 단순히 문자열을 순회하는 방식으로는 단어를 구분하기 어려웠고, 공백을 만나면 a = 0으로 초기화하는 방법을 적용함.
- 아스키 코드 조건 비교:
- 처음에는 대문자와 소문자 범위를 혼동하여 조건식('a' <= s[i] <= 'z')에 오류가 있었음.
5. 배운 점
-
- 공백 처리와 같이 조건이 많은 문자열 문제는 예외 상황을 꼼꼼히 다뤄야 함.
- 공백을 기준으로 단어를 나누는 방법(공백을 만나면 인덱스를 초기화하는 로직)을 배움.
- 아스키 코드를 활용한 문자 변환 로직을 익히게 됨
- 'a'와 'A'의 차이는 32로 일정하다는 점을 기억!
'TIL(Today I Learned) > C++' 카테고리의 다른 글
| TIL: find, map, replace 사용법 (0) | 2025.01.29 |
|---|---|
| 28일차(형변환과 순수 가상 함수) (0) | 2025.01.24 |
| 25일차(참조자 포인터) (0) | 2025.01.21 |
| 22일차(상수, 포인터) (0) | 2025.01.16 |
| 21일차(헤더 파일과 CPP 파일 분할 및 빌드 과정 이해) (0) | 2025.01.15 |