| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- c#코딩기초트레이닝
- 유니티
- unity3d게임만들기
- unity게임만들기
- c#기초문법
- 유니티공부
- 백준코딩테스트
- unity3d
- 백준 c++ 공부
- 바킹독알고리즘
- 백준
- C#문법
- Unity
- c# c#프로그래머스
- c#
- unity게임
- 백준 구현문제
- c#기본문법
- c#코테
- 유니티게임만들기
- 유니티3dui
- 유니티서바이벌게임만들기
- 백준코테
- 바킹독
- unity3dservival
- 백준 C++
- c#프로그래머스기초문법
- 티스토리챌린지
- 오블완
- c#문제
- Today
- Total
나 개발자 진짜 되냐?
백준 C++ 25501번 재귀의 귀재 ( s.length, string_view ) 본문
백준 C++ 25501번 재귀의 귀재 ( s.length, string_view )
Snow Rabbit 2026. 2. 2. 21:36
오늘은 2월 2일!
거꾸로 해도 2월 2일!
그래서 내가 오늘 풀 문제는
재귀의 귀재!
킄킄킄


똑똑하다... 이 함수를 그니까 보고
몇 번 호출하는지, 반환값으로 알기 이 두 개를 더 센다는 거 같다.
일단 복사보단, 위에 코드를 한번 치면서 재귀를 익혀보려고 했다.
( 시도는 좋았다. )
시도만 좋았다.
문제자체를 다 준거 같은데도 뭔가 그 재귀함수자체를 바로 이해하지 못했다.

일단 하나씩 보면.. l이 시작인 거 같고 r이 글자수인 거 같다.
l이 횟수인 거 같다. 그래서 글자수만큼 함수가 돌지 않았으면 0을 출력하는 거 같고
글자수만큼 함수가 돌았다면 1을..?

글자를 가져와서 strlen길이..-1? 만큼 돌리는 거 같은데..
아 그리고 자꾸 뭐

이거 뜬다..
에잇..
제씨에게 물어보았다.
펠린드롬 글자는
맨 첫 글자와 맨 끝자가 같아야 하기 때문에
비교가 첫차와 끝자라 고한다.
그래서 그다음을 비교할 땐, 첩자 +1, 끝자 -1이라고 한다.
그러니 아까 위에 내가 뭐 횟수녜 뭐녜는 다 그냥 틀린 추측인 것..!!
그렇다면 count가 없으니 따로 만들어줘야겠다!
그리고 c++언어로 바꾸라는 거보니까 좀 함수를 만져도 되나 보다..!
제시는 count를 전역변수로 해주라고 했다.
그리고 그 함수가 시작할 때 ++ 해주라고 했다.
그리고
string을 char *로 받으려면
s.c_str()
이거 두 개만 해주면 끝난단다.

하나씩 정리해 보자.
strlen(s)
String Length의 약자
문자열의 시작점부터 \n을 만날 때까지 문자의 개수를 세어주는 함수
여기서 들어갈 매개변수는
const char*란다.
const char*
const char이란!
const = 읽기만 해! 글자를 고치지 마!
char 문자 하나를!
* 포인터! 위치를 알려주는 친구
즉, 글자 자체를 가져오는 게 아니라 주소만 적어두어서 읽기 전용으로만 쓸 수 있게 하는 것!
메모리에 좋다고 한다.
근데 사실 이거 두 개 다 구형버전이라
이렇게 안 쓴다고 한다.
이 구형버전을 사용했기 때문에
밑에서 c_str()을 사용해서
const char*을 변환시켜 주기 위한 친구! 인 셈!
그럼 이거를 어떻게 최신화시키냐!!
그냥 const string으로 해주면 된다.

strlen 말고 s.length()를 써주면 되는데
여기서 중요한 건
저 length는 반환값이 정해지지 않았어서
(int)로 캐스팅해줘야 한다!! 그래서 앞에 int가 들어간다!
가장 효율적이라며 string_view를 소개해주었다.
문자열의 주소를 통해서 가는 것보다 더 빠른
그냥 눈팅만 하겠다! 보기만 하는 창문인 셈
그럼 const도 안 쓰고
string_view s, int l, int r;
해주면 된다.

자라란!
오늘까지! 구현문제를 풀고
오늘 혹은 내일부터 solved.ac에 있는 class문제를 뽑아서 풀어볼 예정이다.!
클래스 4까지만 풀면 모든 코테를 풀 수 있다던데..
정말 나.. 문제 풀 수 있을까?!!?
도전!!
'C++을 시작해봐요! > 구현문제를 알아보아요!' 카테고리의 다른 글
| 백준 C++ 1193번 분수찾기 ( break, continue ) (0) | 2026.02.10 |
|---|---|
| 백준 C++ 2920번 음계 ( if문 두번쓰기 ) (1) | 2026.02.03 |
| 백준 C++ 1977번 완전제곱수 ( sqrt(a), ceil(x) ) (2) | 2026.01.30 |
| 백준 C++ 1550번 16진수 ( 누적곱, stoi, hex ) (0) | 2026.01.29 |
| 백준 C++ 9093번 단어 뒤집기 ( getline, stringstream ) (1) | 2026.01.28 |
