⭐ 코딩테스트/프로그래머스
[프로그래머스 C++] 불량 사용자
[프로그래머스 C++] 불량 사용자
2024.07.23[프로그래머스 C++] 불량 사용자 https://school.programmers.co.kr/learn/courses/30/lessons/64064 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 해결전략 백트래킹(Backtracking), 집합(Set), 조합(combinations) 해결 방법bool isMatch 함수: user ID가 banned ID과 일치하는지 확인하는 bool 함수 생성.백트래킹을 통한 조합 생성: 가능한 모든 조합을 생성하고 조건을 만족하는지 확인하는 함수 작성.중복 제거: 결과 조합에서 중복된 것을 제거하여 최종 답을 구..
[프로그래머스 C++] 후보키
[프로그래머스 C++] 후보키
2024.07.22[프로그래머스 C++] 후보키 https://school.programmers.co.kr/learn/courses/30/lessons/42890 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 해결전략 비트마스킹 Bit Masking 이 문제는 결국 풀지 못하고 다른 사람의 풀이를 봤다.비트마스킹 방법을 사용하면 비교적 간단히 풀 수 있는 문제였다. 정답코드 - 비트마스킹 사용 #include #include #include #include using namespace std;vector candidate; // 후보 키bool isUnique(int ..
[프로그래머스 C++] 디스크 컨트롤러
[프로그래머스 C++] 디스크 컨트롤러
2024.07.19[프로그래머스 C++] 디스크 컨트롤러 https://school.programmers.co.kr/learn/courses/30/lessons/42627 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 해결전략 힙 Heap, 우선순위 큐 Priority Queue 정답코드 #include #include #include using namespace std;bool Compare(const vector& a, const vector& b) { if (a[1] == b[1]) return a[0] > jobs) { int n = jobs.size(..
[프로그래머스 C++] 스티커 모으기(2)
[프로그래머스 C++] 스티커 모으기(2)
2024.07.16[프로그래머스 C++] 스티커 모으기(2) https://school.programmers.co.kr/learn/courses/30/lessons/12971 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 해결전략 동적계획법 Dynamic Programming 정답코드 #include #include using namespace std;int solution(vector sticker){ int n = sticker.size(); vector dp1(n); // 첫번째 선택O vector dp2(n); // 첫번째 선택X dp1[0] ..
[프로그래머스 C++] 숫자 게임
[프로그래머스 C++] 숫자 게임
2024.07.15[프로그래머스 C++] 숫자 게임 https://school.programmers.co.kr/learn/courses/30/lessons/12987 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 해결전략 투 포인터 Two Pointer 정답 코드 #include #include #include using namespace std;int solution(vector A, vector B) { sort(A.begin(), A.end()); sort(B.begin(), B.end()); int answer = 0; int p1 =..
[프로그래머스 C++] 베스트앨범
[프로그래머스 C++] 베스트앨범
2024.07.09[프로그래머스 C++] 베스트앨범 https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 해결전략 map자료구조 정답코드 #include #include #include #include #include using namespace std; bool Compare(pair& a, pair& b) { return a.second > b.second; // 두 장르의 재생 횟수를 비교하여 내림차순으로 정렬}vector solution(vect..
[프로그래머스 C++] 최고의 집합
[프로그래머스 C++] 최고의 집합
2024.07.08[프로그래머스 C++] 최고의 집합 https://school.programmers.co.kr/learn/courses/30/lessons/12938 해결전략 수학? 중복을 허용하는 집합에서 곱이 최대가 되어야 한다.숫자의 크기 차이가 작을수록 곱은 최대가 된다. 그래서 s / n 으로 몫을 구하여 중간값을 기준으로 집합을 만든다. s % n 으로 나머지를 구하고 나머지 값 만큼 숫자를 더한다. 정답코드 #include using namespace std;vector solution(int n, int s) { vector answer; int value = s / n; // s를 n으로 나눈 몫 int remainder = s % n; // s를 n으로 나눈 나머지 in..
[프로그래머스 C++] 야근 지수
[프로그래머스 C++] 야근 지수
2024.07.01[프로그래머스 C++] 야근 지수 https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 해결방안 우선순위 큐 priority_queue힙 Heap 이 문제의 핵심은 "작업량을 최대한 균등하게 줄여서 남은 작업량의 제곱 합을 최소화하는 것"이다. 남은 작업량을 최대한 균등하게 줄여야 한다.최대 힙을 사용해 현재 가장 작업량이 많은 일을 1만큼 줄이고, 다시 힙에 넣는 과정을 반복한다.이렇게 하면 작업량이 많은 일부터 줄어들게 되고, 전체 작업량이 균등..
[프로그래머스 C++] 기지국 설치
[프로그래머스 C++] 기지국 설치
2024.06.18[프로그래머스 C++] 기지국 설치https://school.programmers.co.kr/learn/courses/30/lessons/12979 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 해결전략 처음 시도한 코드 #include #include using namespace std;vector v;int solution(int n, vector stations, int w){ int answer = 0; int x = 0; int block = w + 1 + w; // w + 1 + w를 하나의 블록으로 취급 int cn..
[프로그래머스 C++] 단속카메라
[프로그래머스 C++] 단속카메라
2024.06.17[프로그래머스 C++] 단속카메라 https://school.programmers.co.kr/learn/courses/30/lessons/42884# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 해결전 Greedy Algorithm 탐욕법 처음 시도한 코드 #include #include #include using namespace std;// 시작 지점을 기준으로 오름차순 정렬. 시작 지점이 같으면 끝 지점을 기준으로 오름차순 정렬.bool Compare(vector& v1, vector& v2) { if (v1[0] > routes) { ..
[프로그래머스 C++] 징검다리 건너기
[프로그래머스 C++] 징검다리 건너기
2024.06.16[프로그래머스 C++] 징검다리 건너기 https://school.programmers.co.kr/learn/courses/30/lessons/64062 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 해결전략 이분 탐색슬라이딩 윈도우 알고리즘 Sliding Window Algorithm 처음 시도한 코드- 효율성 7 ~ 14 통과X #include #include #include #include using namespace std;// 연속된 k개의 징검다리의 각각의 수가 낮은거 찾아야 함// 처음부터 k개씩 묶은 후 가장 높은 수를 기록하며, k개씩..
[프로그래머스 C++] 네트워크
[프로그래머스 C++] 네트워크
2024.06.15[프로그래머스 C++] 네트워크 https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 해결전략 너비우선탐색 BFS 유니온 앤 파인드 Union & Find 아래 풀이는 BFS 처음 시도한 코드 #include #include #include using namespace std;int answer; // 네트워크 개수int cnt; // 연결된 컴퓨터 수vector> ch; // 방문 여부를 체크void BFS(int start, int n, vect..