개발자 바다의 파도

개발의 무인도에 갇혔다

알고리즘 공부/프로그래머스 알고리즘

코딩 기초 트레이닝 - 9일차 (C++)

개바파 2023. 12. 22. 14:43

9일차 - 문자열

 

1번) 배열 만들기 5

 

 

     백터 intStrs에 있는 값에 s부터 인덱스를 시작하면서 l의 길이까지 있는 string 값을 stoi을 해서 int 정수 값으로 만들어서 int k 값과 비교를 하면 됩니다. 만일 stoi한 string 값이 k보다 많으면 백터 answer에 삽입합니다.

 

2번) 부분 만자열 이어 붙여 문자열 만들기

 

 

     백터 my_strings 안에 있는 여러 값들을 백터 parts에 있는 값에 따라 my_strings에 있는 string 값을 특정 인덱스 값으로 나누어 string answer에 삽입하는 문제입니다. 

 

3번) 문자열의 뒤의 n글자

 

 

     문제의 제목처럼 string my_string을 맨 끝으로 시작해서 answer에 저장하는 것 입니다. 평소에는 for문 초기 값을 0으로 하는 것을 my_string.size() 값으로 해서 초기 값을 1씩 떨어뜨리는 방식으로 하면 됩니다. 

 

4번) 접미사 배열

 

 

     일단 13번줄에서 23번줄까지 백터 answer에 값을 저장합니다. 이는 더블 for문으로 하면 해결하기 쉽습니다. 문자를 앞 문자 하나씩 때서 삽입하는 방법입니다. 이후 #include <algorithm>을 불러서 sort 함수를 쓰면 쉽게 알파벳 순서로 정렬 할 수 있습니다.

 

5번) 접미사인지 확인하기

 

 

     전에 풀었던 '접미사 배열' 문제에 풀었던 방식과 같이 14번줄에서 24번줄까지 주어진 문자인 my_string에서 접미사를 백터 answer1에 삽입을 하면 됩니다. 이후 26번줄에서 32번줄까지 for문으로 주어진 string is_suffix를 비교하면서 만일 같으면 answer을 1로 바꾸고 아니면 계속 for문을 돌려줍니다. 만일 answer = 1로 되면 break문을 쓰면 좀 더 효율적으로 코드를 짤 수 있습니다.

 

코드 복붙 주소 - 

https://github.com/ResToEons/ProgrammersAlgorithm/tree/main/%EC%BD%94%EB%94%A9%20%EA%B8%B0%EC%B4%88%20%ED%8A%B8%EB%A0%88%EC%9D%B4%EB%8B%9D/09%EC%9D%BC%EC%B0%A8