새소식

반응형
알고리즘/c++

[프로그래머스] level2 영어 끝말잇기 - c++

  • -
728x90
반응형

하핫

돌아오는 월욜(내일)부터 하루에 세문제씩 풀기로 계획세웠는데

ㅎ 할수있겠지 ㅎ

한문제 풀고 나면 그냥 집가고싶어짐 ㅎ

 

무튼 ..

 

#include <string> #include <vector> using namespace std; vector<int> solution(int n, vector<string> words) { vector<int> answer; string before = words[0]; for(int i=1;i<words.size();i++){ if(words[i][0]!=before[before.length()-1]){ answer.push_back((i+1)%n==0?+n:(i+1)%n); answer.push_back(i/n+1); return answer; }else{ for(int j=0;j<i;j++){ if(!words[j].compare(words[i])){ answer.push_back((i+1)%n==0?n:(i+1)%n); answer.push_back(i/n+1); return answer; } } } before=words[i]; } if(answer.empty()){ answer.assign(2, 0); } return answer; }

다른 사람들 풀이 보니까 map이나 set같은 자료구조 활용하는게 best처럼 보이네유..

반성..

역시 자료구조 기초가 흔들거리다보니 ㅎ 코드가 복잡해지는군 ..

 

사실 before같은거 필요없고 words[i-1] 이런식으로 가도 되는데

어제 문제가 생각나서 의식의 흐름대로 걍 before로 일단 대입한듯 ㅋㅎ

 

생각하며 풀자!

 

아 글고 첨엔 map쓸 생각을 못하고

걍 vector 정렬해서 idx로 찾을까? 하다가.. vector는 탐색이 넘 복잡하다는걸 깨닫고.. 걍 이중for문으로 튀튀 ㅎ

 

  • string.compare(string)
    • 제발!!!! c++은 문자열 비교할때 equals 아니고 compare이다!! 맨날 equals로 해놓고 에러나면 당황함ㅋ
  • strcmp 함수도 있긴함 (char*에 대해 사용)
  • find() 함수
    • vector나 배열에 요소 있는지 확인하는
    • #include <algorithm>
      • find(v.begin(), v.end(), 특정값) -> 발견시 리턴값이 iter, 미발견시 v.end()반환
      • find(arr, arr+n, 특정값)

 

반응형

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.