목록코딩테스트/프로그래머스 (45)
Deff_Dev
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이DP를 이용하여 풀었다. 점화식dp[i][j] = dp[i - 1][j] + dp[i][j - 1]; 물 웅덩이(-1) 일 땐 계산하지 않았다.#include using namespace std;int dp[101][101] = {0,};int solution(int m, int n, vector> puddles) { for (int i = 0; i
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이키패드는 정해져있기 때문에 0 ~ 9, #, * 의 좌표를 저장한다. Left는 #(10), Right는 *(11)에서 시작한다. 1, 4, 7을 누를 땐 Left, 3, 6, 9를 누를 땐 Right로 누르고 현재 엄지 손가락 위치를 저장한다.2, 5, 8, 0을 누를 땐, 현재 손가락 위치에 따라 가장 가까운 쪽의 엄지 손가락으로 누른다.#include #include using namespace std;int dial [12][2] = {{4,2},{1,1},{1,2},{1,3},{2,1},{2,2..
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이이 문제는 상황에 맞게 정렬하여 풀이했다. 일단 pair 벡터에 정리할 파일들의 좌표를 저장한다. 저장한 후, 드래그 시작 좌표와, 끝 좌표를 구한다. 드래그 시작Y 좌표→ Y축으로 오름차순 정렬 후, 0 번째 좌표의 Y값X 좌표 → X축으로 오름차순 정렬 후, 0 번째 좌표의 X값 드래그 끝Y 좌표→ Y축으로 내림차순 정렬 후, 0 번째 좌표의 Y + 1값X 좌표→ X축으로 내림차순 정렬 후, 0 번째 좌표의 X + 1값 순서대로 answer에 Push 해주고 Return#include #inclu..
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이map을 이용하여 신체 부위 별 의상 갯수를 리스트업 한 다음, 모든 경우의 수를 구한다. 이때, 옷은 입지 않는 경우의 수도 있기 때문에 + 1을 하고 return할 때, 아무것도 안 입는 경우를 빼준다. #include #include #include // https://school.programmers.co.kr/learn/courses/30/lessons/42578#using namespace std;map maps;int solution(vector> clothes) { int answe..
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이set을 이용하여 폰켓몬 Vector의 중복을 제거하고, 최대로 선택 가능한 폰켓몬 수와, set에 저장된 요소들의 수 중 작은 수를 반환한다.#include #include // https://school.programmers.co.kr/learn/courses/30/lessons/1845using namespace std;int solution(vector nums){ set uniqueMonsters(nums.begin(), nums.end()); // 중복 제거 int maxPick ..
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 주어진 시작 단어를 목표 단어로 변환하는데, 매번 한 글자씩만 바꿀 수 있으며, 중간 과정은 주어진 단어 목록 내에서만 가능할 때, 최소 변환 단계를 구하는 문제이다. 풀이target 단어가 words 안에 있는지 확인한다.target 단어가 있다면 BFS를 이용하여 target 단어까지의 최소 변환 단계를 구한다. #include #include #include using namespace std;pair visited [50];bool IsTransitionWord(string curWord, stri..
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr이 문제는 n * m 크기의 0(벽), 1(길)로 이루어진 Map에서 (1,1) 부터 (n,m)까지의 최단 거리를 구하는 문제이다.풀이(0,0) 부터 (n-1,m-1)까지 탐색하는 걸로 풀이했다.BFS를 이용하여 (n-1,m-1)까지의 각 타일 별 최단 거리를 구했다.#include#include#include using namespace std;int dx [4] = {1,-1,0,0};int dy [4] = {0,0,1,-1};int BFS(vector > maps){ int m = maps[0]...
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제는 간선으로 이어진 그래프(네트워크)의 갯수를 구하는 문제이다.풀이BFS를 이용하여 각 노드들을 탐색하고 간선으로 이어지지 않은 정점의 갯수를 구하는 방법으로 풀이했다.#include #include #include using namespace std;bool visited[200] = {false,};void BFS(vector> computers , int startNode){ queue q; q.push(startNode); visited[startNode] = t..