티스토리 뷰

반응형

https://programmers.co.kr/learn/courses/30/lessons/17685

 

코딩테스트 연습 - [3차] 자동완성

자동완성 포털 다음에서 검색어 자동완성 기능을 넣고 싶은 라이언은 한 번 입력된 문자열을 학습해서 다음 입력 때 활용하고 싶어 졌다. 예를 들어, go 가 한 번 입력되었다면, 다음 사용자는 g

programmers.co.kr

 


⊙ 문제

⊙ 제한사항

⊙ 입출력 예

⊙ 입출력 예 설명


 

⊙ 문제 접근 과정

 

words를 정렬한다. 그리고 첫 번째 단어를 담을 변수를 만들어주고

그다음 단어부터 탐색을 시작한다.

 

1. 인덱스 크기 비교

2. 단어 스펠링 비교

 

자세한 건 코드를 통해 확인하자


 

⊙ 문제 풀이

 

#include <string>
#include <vector>
#include <algorithm>
using namespace std;


int solution(vector<string> words) {
    int ans=1, pre=0;

    sort(words.begin(), words.end());

    string pre_word=words[0]; //정렬된 첫번째 단어

    for (int cur=1;cur<words.size();cur++) {//단어 개수만큼 반복
        int idx = 0;

        for (;idx<=words[cur].size();idx++) { //입력된 단어 순서대로
            if (idx>=pre_word.size()) { //현재 idx가 이전 단어보다 크다면
                ans+=pre_word.size()-pre-1;
                ans+=idx+1;
                break;
            }
            if(words[cur][idx] != pre_word[idx]) { //현재 단어랑 이전 단어 스펠링이 다르다면
                if (idx>pre) ans+=idx-pre;
                ans+=idx+1;
                break;
            }
        }

        pre=idx;
        pre_word=words[cur];
    }
    return ans;
}

 


⊙ 마무리

 

 

NONE

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함