목록Algorithm (428)
Mini
*c++ split vector split(string input, string deli){ long long pos=0; vector ret; string token=""; while((pos=input.find(deli))!=string::npos){ token=input.substr(0,pos); ret.push_back(token); input.erase(0,pos+deli.size()); } ret.push_back(input); return ret; } * 시간, 날짜문제는 제일적은단위로 단위를통일하라 //2022, 05, 19 -> 99999일 //test 완료. long long todayToDay(vector v){ long long ret=0; ret+=stoi(v[0])*336; re..

문제 : c++ 에는 split함수가없다 해결 : 직접구현 주의1 : (pos=str.find(deli))에서 괄호를 싸줘야함. 주의 2: 마지막에 ret.push(input) => 마지막 남은 문자배열처리 * 로직 192.168.0.1 pos='.'의 idx인 3 token=192 (0부터, 3칸) token넣기 지우기(192.) (0부터, 4칸) #include using namespace std; vector split(string input, string deli) { long long pos=0; vector ret; string token = ""; while ((pos=input.find(deli)) != string::npos) { token = input.substr(0, pos); re..
https://school.programmers.co.kr/learn/courses/30/lessons/81302 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr * 2차원벡터다루기 형식 vector 스킵 거리가 2이하 and 거기가 사람임 -> false for(4방탐색) 범위쳌 방문함 ->스킵 next==x -> 스킵 방문처리 큐푸쉬 #include #include #include using namespace std; int dx[]={1,0,-1,0}; int dy[]={0,1,0,-1}; struct Point{ int y; int x; int di..
코딩테스트 연습 - 숫자 카드 나누기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 : 탐색이많다 해결 : 정렬, 배열중 최소값의 약수 비교만으로 충분함. ex) 14,35, 70 의 최대공약수 후보 : 1,7,14 중에 있다. / 35,70약수는 필요없음. #include #include #include using namespace std; //안나눠 지는게 잇다.(true) bool is_rest (int num, vector array) { for(auto c : array) if (c%..

https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr * 문제1 : 알파벳순서대로 방문 해결 : dfs전 정렬 *문제2 : 키가 string인데? visit[string]가능? ㄴㄴ 해결 : 원소가 2개밖에없으므로 for(i)로 돌면서 2차원벡터 방문 여부만 체크. 접근은 ticket[i][0], [i][1]로 접근 *문제 3: a->b c->d 인거는 못가고, a->b, b->c 인거만 가야함 해결 : 이전값(b)과 현재값(c)이 다르면 pass ..

2529번: 부등호 (acmicpc.net) * 재귀로 완탐구현 기본꼴 : go(index, 임시저장결과값) 1. 종료조건 2. 직접해보면서 일반화하라. 마지막숫자 == num[idx-1] 비교할숫자 == i 비교할op == a[idx-1] 임을 알 수 있다. * string 정렬시주의 "23" "123" 비교시 앞부터 하나씩 비교 하므로, 23이 더 크게됨에 주의. #include using namespace std; int n, temp, check[14]; vector ret; char a[14]; bool good(char a, char b, char op) { if (op == '' && a > b) return true; return false; } void go(int idx, string ..

1987번: 알파벳 (acmicpc.net) 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net * 노드가 각자의visit을 가져야한다면 원복! visited[a[ny][nx] - 'A'] = 1; dfs(ny, nx, cnt + 1); visited[a[ny][nx] - 'A'] = 0; * dfs visit[now] [next]둘중 하나만 해라 void dfs(int y, int x, int cnt) { v[y][x]=1;//항상 참이됨 ~~~~ v[ny][nx]=1; dfs[ny][nx]; } 문제 ..
3197번: 백조의 호수 (acmicpc.net) 3197번: 백조의 호수 입력의 첫째 줄에는 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1500. 다음 R개의 줄에는 각각 길이 C의 문자열이 하나씩 주어진다. '.'은 물 공간, 'X'는 빙판 공간, 'L'은 백조가 있는 공간으로 나타낸다. www.acmicpc.net * 논리짜기 물) . . 다음(next)경우의수 : '.' X L '.'-> 계속, 입력시 이미큐에넣어놓음, 방문처리도함 -> 처리필요X 'L'->계속, L도 물로간주. 입력시 처리완료. -> 처리필요X X -> 멈춰 1.tempQ push 2. 방문처리 3. there을 '.'으로 수정. 백조) . . 다음(next)경우의수 : '.' X L '.'-> 계속, Q.push 'L'->..