Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 카메라
- Pixel Bit Format
- main 함수 인자 전달
- AppInventer
- 저조도
- C Mount
- 조건 제어문
- Depth of Fileld
- 렌즈
- 변수
- c언어
- 실생활알고리즘
- 간단한 앱만들어보기
- 저장소와 동적메모리
- 이미지센서
- 과초점거리
- 무게선별자동화
- 아이리스
- 프로그래머스 lv2
- 고정비트레이트
- camera
- Gain
- Zoom Lense
- Digital Slow Shutter
- ASCCII
- 변수의 초기화와 대입
- Patch Cleaner
- 심도
- image sensor
- CS Mount
Archives
- Today
- Total
카메라 개발자 공부방(SW)
프로그래머스lv2-영어 끝말잇기 본문
반응형
프로그래머스 끝말 잇기 문제이다.
현재사람의 끝말과 다음 사람의 첫말이 다른 경우,
이미 전에 불렸던 단어라면 탈락이 되고 가장 먼저 탈락하는 사람의 번호와 몇 번째 차례에서 탈락 했는지를 찾아서 반환 하면된다.
#include <string>
#include <vector>
#include <iostream>
#include <map>
using namespace std;
vector<int> solution(int n, vector<string> words) {
vector<int> answer;
vector<vector<string>> people(n);
map<string, int> m;
people[0].push_back(words[0]);
m[words[0]] = 1;
for (int i = 1; i < words.size(); i++) {
people[i % n].push_back(words[i]);
int len = words[i - 1].length();
if (words[i - 1][len - 1] == words[i][0] &&
m.find(words[i]) == m.end()) {
m[words[i]] = 1;
}
else {
answer.push_back(i % n + 1);
answer.push_back(people[i % n].size());
return answer;
}
}
answer.push_back(0);
answer.push_back(0);
return answer;
}
사람 마다 불린 단어를 관리하기 위해서 vector를 사람 별로 놓았다. 이렇게 따로 관리하니 vector의 사이즈가 몇번째 차례인지를 나타내는 값이 되었다. 이전에 불렸던 단어인지 확인하기 위해 map을 사용하였다. 이전 단어와 그 다음 단어가 다르거나 이미 맵에 word가 존재하는 경우 정답을 반환하도록 작성하였다.
'코딩문제풀이' 카테고리의 다른 글
프로그래머스lv1-자연수 뒤집어 배열로 만들기 (1) | 2022.09.09 |
---|---|
프로그래머스lv2-카펫 (0) | 2022.09.09 |
Comments