[Algorithm] String 정리

YUNU·2024년 4월 16일

알고리즘

목록 보기
13/15
post-thumbnail

🤖 Algorithm


🔵 substr

substr(pos,count)
문자열의 일부를 return

pos번째 문자부터 count 길이 만큼의 문자열을 반환

count가 null이면 끝까지 반환

map<string,int> pb;

for(int i=0;i<phone_book.size();i++)
{
    for(int j=0;j<phone_book[i].size()-1;j++)
    {
    	// preNum은 phone_book[i]의 0번째 문자부터 j+1개 만큼의 문자를 string으로 반환
        string preNum=phone_book[i].substr(0,j+1);
        if(pb[preNum])
            answer = false;
    }
}

🔵 stringstream

#include < sstream >

stringstream ss(문자열)

문자열에서 문자열과 숫자를 추출

    for(int i=0;i<operations.size();i++)
    {
    	// stringstream 객체 ss 생성 및 초기화
        stringstream ss(operations[i]);
        string op;
        int num;
        // ss에서 string은 op로 int는 num으로 할당
        ss >> op >> num;
        
        if(op=="I")
        {
        	//...
        }
        //...
    }

🔵 문자열 <-> 숫자 변환

  • 문자열 -> 숫자

    • stoi (string to 타입)
    • stof
    • stod
    • stol
    int num=stoi("1234") //1234
  • 숫자 -> 문자열

    • to_string
    to_string(111) // "111"

🔵 문자열로 최댓값 만들기

// 이 함수에서 길이 나누는 것은 의미가 없음
bool compare(int a, int b) 
{
    string num1 = to_string(a) + to_string(b);
    string num2 = to_string(b) + to_string(a);
    
    return num1 > num2;
}

sort(numbers.begin(), numbers.end(), compare);

string num="";
for (int num : numbers) 
{
    answer += to_string(num);
}

🔵 문자열 비교

문자열은 앞자리부터 비교
"4321" > "1234"
"4321" < "7"

profile
DDeo99

0개의 댓글