Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 알고리즘
- UELOG
- 델리게이트
- 프로그래머스
- 람다
- enumasByue
- dataasset
- 약참조
- 언리얼가비지컬렉터
- moreeffectiveC++
- map
- UE_LOG
- unorder_map
- BFS
- 람다사용정렬
- 정렬알고리즘
- C++최적화
- 정렬
- C++
- 데이터애셋
- 크리티컬섹션
- UE4 커스텀로그
- 애셋로드
- 선택정렬
- 자료구조
- 강참조
- 언리얼엔진구조체
- 스마트포인터
- UML관련
- stl
Archives
- Today
- Total
기억을 위한 기록들
[프로그래머스 lv 1 ] - 크기가 작은 부분문자열 (C++) 본문
https://school.programmers.co.kr/learn/courses/30/lessons/147355
- 처음에 coredump 가 발생하였으나 p의 범위가 문제였다.
- stoi에서 stoll로 변경후 해결 -> p의 값 범위가 18'글자'라는 말에 헷갈렸으나 '숫자'의 길이로 int의 범위로 는 -2,147,483,647 ~ 2,147,483,647 최대 10글자이고, long long의 범위가 19글자이다. -2의 63승으로 (-9,223,372,036,854,775,808) 에서 263 - 1(9,223,372,036,854,775,807)
#include <string>
#include <vector>
#include <iostream>
using namespace std;
int solution(string t, string p) {
int answer = 0;
const int pSize = p.size();
const long long pValue = stoll(p);
for(int index = 0;index<t.size();index++)
{
//pSize 만큼 문자 자르기
const string cutStr = t.substr(index, pSize);
//검사 조건 초과되면 break;
if(cutStr.size() < pSize || t.size()<=index)
{
break;
}
// 문자열을 long long 타입으로 변환
const long long cutNum = std::stoll(cutStr);
//허용 범위인지
if(cutNum<=pValue)
{
answer++;
}
}
return answer;
}
'Coding Test - cpp > String' 카테고리의 다른 글
[프로그래머스 lv 2 ] - 이진 변환 반복하기 (C++) (1) | 2023.11.20 |
---|---|
[프로그래머스 lv 1 ] - 4주차 직업군 추천 (0) | 2021.10.01 |
[프로그래머스 lv 2 ] - 영어 끝말잇기 (0) | 2021.09.25 |
[프로그래머스 lv 1 ] - [1차] 비밀지도 (0) | 2021.09.13 |
[프로그래머스 lv 2 ] - 오픈채팅방 (0) | 2021.09.08 |