하핫
돌아오는 월욜(내일)부터 하루에 세문제씩 풀기로 계획세웠는데
ㅎ 할수있겠지 ㅎ
한문제 풀고 나면 그냥 집가고싶어짐 ㅎ
무튼 ..
정답 코드
#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, 특정값)