반응형

Programming/Programmers 29

프로그래머스 소수찾기 [c++]

#include #include #include #include #include using namespace std; int solution(string numbers) { int answer = 0; int temp; sets; //set을 사용하여 중복되는 숫자방지 for (int i = 0; i < numbers.size(); i++) //numbers에서 한자리 수 이면서 소수인것을 찾는 반복문 { vectorv; int n; temp = numbers[i] - '0'; //정수로 변환 if (temp == 0)continue; //0,1일 경우 continue if (temp == 1)continue; for (int i = 2; i

프로그래머스 모의고사 c++

#include #include #include #include using namespace std; vector solution(vector answers) { vector answer; vectorv1 = {1,2,3,4,5}; //1번 수포자 방식 vectorv2 = {2, 1, 2, 3, 2, 4, 2, 5}; //2번 수포자 방식 vectorv3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5}; //3번 수포자 방식 int count[3]={0,0,0}; //맞힌 문제수 저장할 배열 int maxNum=0; //최대점수저장할 변수 for(int i=0;i=v1.size()) //각 vector의 사이즈를 넘어갈 경우 vector의 마지막에 해당 vector를 추가로 삽입 v1.inse..

프로그래머스 거리두기확인하기 c++ 2021 카카오 채용연계형 인턴십

#include #include #include #include #include using namespace std; typedef struct { int x; //x좌표 int y; //y좌표 int cnt; //이동거리 저장 }node; int map[6][6]; //대기실 저장 배열 bool visited[6][6]; //방문여부 저장배열 int dx[4] = { 1,-1,0,0 }; //상,하,좌,우 탐색 int dy[4] = { 0,0,1,-1 }; bool bfs(int bx, int by) { queueq; q.push({ bx,by,0 }); visited[bx][by] = true; while (!q.empty()) { int qx = q.front().x; int qy = q.front..

프로그래머스 숫자문자열과 영단어 [c++] 2021 카카오 채용연계형 인턴십

#include #include #include #include #include #include #include using namespace std; int solution(string s) { int answer = 0; string temp = ""; for (int i = 0; i < s.size(); i++) { int n; if (!isdigit(s[i])) //문자열에 숫자가 아닌 문자가 존재한다면, find를 사용하여 어떤 영단어가 존재하는지 확인 { //존재한다면 영단어는 문자열에서 삭제하고 영단어의 시작위치에 해당 숫자를 추가 if (s.find("zero") != -1) { n = s.find("zero"); s.erase((s.begin() + n), (s.begin() + n + 3..

프로그래머스 수식최대화 [c++] 2020카카오인턴십

#include #include #include #include #include #include #include using namespace std; long long cal(long long lla, long long llb, char op) // +, -, * { if (op == '+') return lla + llb; else if (op == '*') return lla * llb; else if (op == '-') return lla - llb; } long long solution(string expression) { long long answer = 0; string temp = ""; vectorsum; //우선순위에 따른 계산후 각 결과값들 저장할 배열 bool check[3] = {..

프로그래머스 키패드누르기 [c++] 2020 카카오 인턴십

#include #include #include #include #include using namespace std; int map[4][3]; //키패드 배열 bool visited[4][3]; //방문확인 배열 int ax[4] = { 1,-1,0,0 }; //상하좌우 int ay[4] = { 0,0,1,-1 }; typedef struct { int x; int y; int cnt; }node; int bfs(int start, int target) //start는 현재 왼손 또는 오른손 엄지의 위치, target은 눌러야할 키패드 { queueq; int a, b; for (int i = 0; i < 4; i++) //현재 키패드의 좌표구하는 반복문 { for (int j = 0; j < 3; j..

프로그래머스 입국심사 [c++]

#include #include #include #include #include using namespace std; long long solution(int n, vector times) { long long answer = 0; sort(times.begin(), times.end()); //오름차순정렬 long long start = 1; long long end = (long long)times[times.size() - 1] * (long long)n; //60, 가장오래걸릴수 있는 시간 long long mid = (start + end) / 2; //30 long long cnt = 0; while (start= n) //시간맞거나 여유있는 경우 { end = mid - 1; answer =..

프로그래머스 가장먼노드 [c++]

#include #include #include #include #include using namespace std; typedef struct { int num; //현재위치 int cnt; //이동 횟수 }node; bool visited[20001]; int solution(int n, vector edge) { int answer = 0; int len = edge.size(); vectorvec(len); //양방향으로 저장할 vector vectorresult(len); //이동횟수 저장할 vector for (int i = 0; i < edge.size(); i++) //양방향으로 저장 { vec[edge[i][0]].push_back(edge[i][1]); vec[edge[i][1]].pu..

프로그래머스 네트워크 [c++]

#include #include #include #include #include using namespace std; bool visited[201]; //방문여부 확인하는 배열 int solution(int n, vector computers) { int answer = 0; //네트워크 개수 for (int i = 0; i < n; i++) { if (!visited[i]) //방문하지 않은 컴퓨터일 경우 bfs탐색 { queueq; q.push(i); visited[i] = true; while (!q.empty()) { int a = q.front(); q.pop(); for (int j = 0; j < computers[a].size(); j++) { if (a == j)continue; //c..

반응형