일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 카카오
- 카카오 공채
- Baekjoon
- set
- CS 스터디
- 삼성 SW 역량테스트
- 2018 KAKAO BLIND RECRUITMENT
- gradle
- 2018 카카오
- 알고리즘
- 2019 카카오 공채
- 삼성 SW 기출문제
- 2018 카카오 공채
- dfs
- Java
- bfs
- 백준
- 비트마스크
- 2019 카카오 개발자 겨울 인턴십 코딩테스트
- 2019 KAKAO BLIND RECRUITMENT
- gcp
- 프로그래머스
- 2018 KAKAO BLIND RECRUITMENT 1차
- c++
- 젠킨스
- 자바
- 2020 카카오 공채
- 2020 KAKAO BLIND RECRUITMENT
- map
- 부스트코스
Archives
- Today
- Total
아무코딩
[2019 카카오 개발자 겨울 인턴십 코딩테스트] 문제3. 불량 사용자 본문
문제풀이
범위가 작아 완탐이 가능한 문제입니다.
dfs를 사용하였고
문제에
제재 아이디 목록들을 구했을 때 아이디들이 나열된 순서와 관계없이 아이디 목록의 내용이 동일하다면 같은 것으로 처리하여 하나로 세면 됩니다.
라는 부분을 보고 중복방지와 순서가 필요없다는 부분에서 set이 생각나 set을 사용하였습니다. 아이디 목록도 set
그 목록자체의 목록도 set으로 구성하여 이중 set을 사용하였습니다.
소스코드
더보기
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
#include <string>
#include <vector>
#include <set>
using namespace std;
int cnt = 0;
set<set<string>> comp;
bool compareCheck(string s1, string s2) {
return false;
if (s1[i] == s2[i] || s2[i] == '*')
continue;
else {
return false;
}
}
return true;
}
void dfs(int idx, set<string> check_set, vector<vector<string>> candidate_list) {
if (idx == candidate_list.size()) {
if (check_set.size() == candidate_list.size()) {
for (auto iter = comp.begin(); iter != comp.end(); iter++) {
if (*iter == check_set)
return;
}
cnt++;
}
return;
}
for (int i = 0; i < candidate_list[idx].size(); i++) {
dfs(idx + 1, check_set, candidate_list);
}
}
}
int solution(vector<string> user_id, vector<string> banned_id) {
vector<vector<string>> candidate_list;
for (int i = 0; i < banned_id.size(); i++) {
vector<string> temp;
for (int j = 0; j < user_id.size(); j++) {
if (compareCheck(user_id[j], banned_id[i])) {
temp.push_back(user_id[j]);
}
}
candidate_list.push_back(temp);
}
set<string> chk;
dfs(0, chk, candidate_list);
return cnt;
}
|
문제링크 : https://programmers.co.kr/learn/courses/30/lessons/64064
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[2019 카카오 개발자 겨울 인턴십 코딩테스트] 문제5. 징검다리 건너기 (0) | 2020.04.03 |
---|---|
[2019 카카오 개발자 겨울 인턴십 코딩테스트] 문제4. 호텔 방 배정 (0) | 2020.04.03 |
[2019 카카오 개발자 겨울 인턴십 코딩테스트] 문제2. 튜플 (0) | 2020.04.03 |
[2019 카카오 개발자 겨울 인턴십 코딩테스트] 문제1. 크레인 인형뽑기 게임 (0) | 2020.04.03 |
[2019 KAKAO BLIND RECRUITMENT] 블록 게임 (0) | 2020.04.01 |
Comments