본문 바로가기

Algorithm/카카오기출

(32)
[프로그래머스] 거리두기 확인하기 문제 풀이 #include #include #include // memset using namespace std; bool visited[5][5]; int dx[4]; int dy[4]; bool isSafe ; void dfs(int y, int x, vector place, int count){ visited[y][x] = true; if(count>2 || place[y][x] == 'X') { return; } else { if(count !=0 && place[y][x] == 'P') { isSafe =false; return; } for(int i=0; i=0&&py>=0) && (px
[프로그래머스] 메뉴 리뉴얼 / substr, 순열과 조합 문제 입출력 예 풀이 #include #include #include #include #include #include using namespace std; map hashMap; //정답 봄 void dfs(int targetnum, string str, string order) { if (str.size() == targetnum) { hashMap[str] += 1; return ; } for (int i = 0; i < order.size(); i++) dfs(targetnum, str+order[i], order.substr(i+1)); return ; } vector solution(vector orders, vector course) { vector answer; //없으면 오류 for (st..
[프로그래머스] 뉴스 클러스터링 / append, find, isalpha, transform 문제 풀이 #include #include #include #include using namespace std; vector v(string str){ char before= tolower(str[0]); vector vec; for(int i=1; i 'z') || (tolower(str[i]) 'z')) { before = tolower(str[i]); continue; } string s; s.append(1, before).append(1, tolower(str[i])); vec.push_back(s); before = tolower(str[i]); } return vec; } int solution(string str1, string str2) {..
[프로그래머스] 괄호 변환 / substr 문제 풀이 #include #include #include using namespace std; bool check(string p); //괄호는 stack으로 해결 string solution(string p) { string answer = ""; string u, v; int count = 0; if(p.size() == 0) return ""; for(int i=0; i
[프로그래머스] 단체사진찍기 / DFS, assign, next_permutation 문제 풀이 #include #include #include #include #include // abs using namespace std; int answer; vector names; vector visited; vector conditions; void dfs(int n, string inputstr); bool check(string str); int solution(int n, vector data) { answer = 0; names = {'A', 'C', 'F', 'J', 'M', 'N', 'R', 'T'}; visited.assign(8,false); // vector 초기화 conditions = data; dfs(0, ""); return answer; } bool check(strin..
[프로그래머스] 카카오프렌즈 컬러링북 / DFS과 BFS, memset 문제 풀이 #include #include // memset using namespace std; bool visit[100][100]; int num , cnt, N, M; int dx[4]; int dy[4]; //깊이탐색 //DFS : 깊이우선탐색 void DFS(int x, int y, vector picture, int num) { visit[x][y] = true; cnt++; for (int i = 0; i = M || ny >= N) continue; if (picture[nx][ny] == num && !visit[nx][ny]) { DFS(nx,..
[프로그래머스] 오픈채팅방 / stringstream 문제 풀이 1 #include #include #include #include using namespace std; vector solution(vector record) { //map, vector unordered_map map; vector user; vector answer; for(int i=0; i> state >> id >> name; if(state != "Change"){ vec.push_back(state); vec.push_back(id); user.push_back(vec); } if(state != "Leave") map[id] = name; } for(auto a : user){ string s; s += map[a[1]] + "님이 "; a[0] == "Enter" ? s+= ..
[프로그래머스] 문자열 압축 / substr 문제 풀이 1 #include #include using namespace std; int solution(string s) { int answer = s.length(); int len = 0, count = 1; string a, before; for(int i=1; i 1){ string count_s = to_string(count); len += count_s.length(); count = 1; } if(answer > len) answer = len; } return answer; } 정답만을 구하는 것이 목적이었기 때문에(int 값) 정답인 문자열을 구할 수 없었다. 풀이 2 #include #include using namespace std; int solution(string s) { ..