
▶lastIndex() & ▶slice()를 활용한 간단한 문제가 있어 정리해보고자 합니다.
문제설명
문자열 myString과 pat가 주어집니다. myString의 부분 문자열중 pat로 끝나는 가장 긴 부분 문자열을 찾아서 return 하는 solution 함수를 완성해 주세요.
제한사항
- 5 ≤ myString ≤ 20
- 1 ≤ pat ≤ 5
- pat은 반드시 myString의 부분 문자열로 주어집니다.
- myString과 pat에 등장하는 알파벳은 대문자와 소문자를 구분합니다.
입출력 예 & 설명

입출력 예 #1
- "AbCdEFG"에서 "dE"는 한 번 등장하며 처음부터 해당 위치까지 잘라내면 "AbCdE"가 됩니다. 따라서 이 문자열이 "dE"로 끝나는 가장 긴 문자열이며, "AbCdE"를 return 합니다.
입출력 예 #2
- "AAAAaaaa"에서 "a"는 총 네 번 등장하며 이 중 가장 마지막에 있는 위치까지 잘라내면 "AAAAaaaa"가 됩니다. 따라서 이 문자열이 "a"로 끝나는 가장 긴 문자열이며, "AAAAaaaa"를 return 합니다.
나의 풀이

먼저 기본 for문을 사용하여 반복문을 돌려주었습니다.

4번째 줄에서 slice() 함수를 사용하여 pat의 길이만큼 0번째 인덱스에서 1개씩 앞으로 가면서 잘라주었습니다.
그리고 6번째 줄에서 잘라주었던 subs 문자열을 pat과 같은 지 비교하여 만약 같다면 마지막으로 등장하는 pat 부분을 포함하고 이후 부분을 잘라줘야 하기 때문에 slice() 함수를 한번 더 사용하여 answer 변수에 담아주어서 반환해 마무리했습니다.
slice() 함수는 마지막 index는 포함하지 않기 때문에 테스트 1의 입력 값대로 한다면 index : 4에서 de가 마지막으로 등장하기 때문에 slice()의 두 번째 인자가 5가 나오게 됩니다.
다른 풀이

다른 풀이에서는 앞선 lastIndexOf() 포스팅에서 알아보았던 lastIndexOf() 함수를 사용했습니다.
먼저 lastIndexOf() 함수를 사용하여 str에서 pat이 마지막으로 등장하는 인덱스를 idx변수에 저장해 줍니다.
그 후 slice() 함수를 사용하여 0번 째부터 pat 문자열로 끝나는 즉 pat문자가 마지막으로 포함되고 이후 문자열을 잘라야 하기 때문에 slice()의 두 번째 인자를 마지막으로 pat이 등장하는 인덱스에서 pat의 길이만큼 더해주었습니다.
[JavaScript] lastIndexOf() 마지막 문자의 위치 찾기
lastIndexOf() String.lastIndexOf((searchValue[, fromIndex])) lastIndexOf() 는 현재 문자열에서 지정된 문자열을 fromIndex로부터 역순으로 탐색하여 최초로 마주치는 인덱스를 반환합니다. 즉 마지막으로 시작되는
pixx.tistory.com
[JavaScript] 문자열 자르기 함수 substr() / substring() / slice() / splice() / split()
자바스크립트에서 문자열, 배열을 자르기 위해서는 substr(), substring(), slice(), splice(), split() 함수를 사용하면 됩니다. 1. substr() "문자열".substr(startIndex, length); //startIndex : 시작위치, length : 길이 substr
pixx.tistory.com

▶lastIndex() & ▶slice()를 활용한 간단한 문제가 있어 정리해보고자 합니다.
문제설명
문자열 myString과 pat가 주어집니다. myString의 부분 문자열중 pat로 끝나는 가장 긴 부분 문자열을 찾아서 return 하는 solution 함수를 완성해 주세요.
제한사항
- 5 ≤ myString ≤ 20
- 1 ≤ pat ≤ 5
- pat은 반드시 myString의 부분 문자열로 주어집니다.
- myString과 pat에 등장하는 알파벳은 대문자와 소문자를 구분합니다.
입출력 예 & 설명

입출력 예 #1
- "AbCdEFG"에서 "dE"는 한 번 등장하며 처음부터 해당 위치까지 잘라내면 "AbCdE"가 됩니다. 따라서 이 문자열이 "dE"로 끝나는 가장 긴 문자열이며, "AbCdE"를 return 합니다.
입출력 예 #2
- "AAAAaaaa"에서 "a"는 총 네 번 등장하며 이 중 가장 마지막에 있는 위치까지 잘라내면 "AAAAaaaa"가 됩니다. 따라서 이 문자열이 "a"로 끝나는 가장 긴 문자열이며, "AAAAaaaa"를 return 합니다.
나의 풀이

먼저 기본 for문을 사용하여 반복문을 돌려주었습니다.

4번째 줄에서 slice() 함수를 사용하여 pat의 길이만큼 0번째 인덱스에서 1개씩 앞으로 가면서 잘라주었습니다.
그리고 6번째 줄에서 잘라주었던 subs 문자열을 pat과 같은 지 비교하여 만약 같다면 마지막으로 등장하는 pat 부분을 포함하고 이후 부분을 잘라줘야 하기 때문에 slice() 함수를 한번 더 사용하여 answer 변수에 담아주어서 반환해 마무리했습니다.
slice() 함수는 마지막 index는 포함하지 않기 때문에 테스트 1의 입력 값대로 한다면 index : 4에서 de가 마지막으로 등장하기 때문에 slice()의 두 번째 인자가 5가 나오게 됩니다.
다른 풀이

다른 풀이에서는 앞선 lastIndexOf() 포스팅에서 알아보았던 lastIndexOf() 함수를 사용했습니다.
먼저 lastIndexOf() 함수를 사용하여 str에서 pat이 마지막으로 등장하는 인덱스를 idx변수에 저장해 줍니다.
그 후 slice() 함수를 사용하여 0번 째부터 pat 문자열로 끝나는 즉 pat문자가 마지막으로 포함되고 이후 문자열을 잘라야 하기 때문에 slice()의 두 번째 인자를 마지막으로 pat이 등장하는 인덱스에서 pat의 길이만큼 더해주었습니다.
[JavaScript] lastIndexOf() 마지막 문자의 위치 찾기
lastIndexOf() String.lastIndexOf((searchValue[, fromIndex])) lastIndexOf() 는 현재 문자열에서 지정된 문자열을 fromIndex로부터 역순으로 탐색하여 최초로 마주치는 인덱스를 반환합니다. 즉 마지막으로 시작되는
pixx.tistory.com
[JavaScript] 문자열 자르기 함수 substr() / substring() / slice() / splice() / split()
자바스크립트에서 문자열, 배열을 자르기 위해서는 substr(), substring(), slice(), splice(), split() 함수를 사용하면 됩니다. 1. substr() "문자열".substr(startIndex, length); //startIndex : 시작위치, length : 길이 substr
pixx.tistory.com