⭐ 코딩테스트
[Codility] Tree Height
[Codility] Tree Height
2024.02.18[Codility] Tree Height 해결전략 이진트리 Binary Tree 정답코드 #include int answer; void DFS(tree* node, int currLength) { if(node == nullptr) return; answer = max(answer, currLength); if(node->l != nullptr){ DFS(node->l, currLength + 1); } if(node->r != nullptr){ DFS(node->r, currLength + 1); } } int solution(tree* T) { DFS(T, 0); return answer; } 유사문제 2024.02.18 - [⭐ 코딩테스트/Codility] - [Codility] Tree Longe..
[Codility] Tree Longest Zigzag
[Codility] Tree Longest Zigzag
2024.02.18[Codility] Tree Longest Zigzag https://app.codility.com/programmers/trainings/7/tree_longest_zig_zag/start/ Codility Your browser is not supported Please, update your browser or switch to a different one. Learn more about what browsers are supported app.codility.com 해결전략 이진트리 Binary Tree 정답코드 #include using namespace std; int answer; // Longest Zigzag Length void DFS(tree* node, int currLength, ..
[Codility] The Matrix
[Codility] The Matrix
2024.02.17[Codility] The Matrix https://app.codility.com/programmers/challenges/matrix2021/ The Matrix 2021 challenge Take part in our The Matrix 2021 challenge. app.codility.com 해결전략 이분탐색 정답 코드 #include #include using namespace std; bool Check(vector& A, int k) // Check 함수는 주어진 배열 A에서 k보다 크거나 같은 연속된 숫자의 개수가 k보다 크거나 같은지를 확인하는 함수 { int i = 0; while (i =..
[백준 1094번 C/C++] 막대기
[백준 1094번 C/C++] 막대기
2024.02.17[백준 1094번 C/C++] 막대기 https://www.acmicpc.net/problem/1094 1094번: 막대기 지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대 www.acmicpc.net 해결방안 비트 수학 주어진 수 x를 2진수로 표현했을 때의 1의 개수가 우리가 구하고자 하는 막대의 개수와 같다. 정답코드 #include using namespace std; int x; // 입력 받을 수 int cnt; // 막대의 개수 int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0..
[백준 14428번 C/C++] 수열과 쿼리 16
[백준 14428번 C/C++] 수열과 쿼리 16
2024.02.16이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
[백준 16565번 C/C++] N포커
[백준 16565번 C/C++] N포커
2024.02.13[백준 16565번 C/C++] N포커 https://www.acmicpc.net/problem/16565 16565번: N포커 첫째 줄에 N장의 카드를 뽑았을 때, 플레이어가 이기는 경우의 수를 10,007로 나눈 나머지를 출력하라. www.acmicpc.net 해결전략 수학 조합 (Combination) 포함 배제의 원리(Inclusion-Exclusion Principle) 여러 개의 집합이 있을 때, 전체 집합의 크기를 구하는 방법. 각각의 집합의 크기를 더하고 그 중에서 겹치는 부분을 빼는 방식. 정답 코드 #include using namespace std; int n; int com[53][53]; // 조합의 결과를 저장 const int mod = 10007; int Combination..
[프로그래머스 C++] 멀쩡한 사각형
[프로그래머스 C++] 멀쩡한 사각형
2024.02.12[프로그래머스 C++] 멀쩡한 사각형 https://school.programmers.co.kr/learn/courses/30/lessons/62048 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 기하학, 수학 그리디 알고리즘 Greedy Algorithm 핵심 아이디어 w x h 크기의 사각형이 있다. 사각형을 대각선으로 자를 때 영향을 받는 블록은 " w + h - 1 " 만큼의 블록이다. w x h 크기의 사각형을 대각선으로 자를 때, 반드시 가로는 w 만큼, 세로는 h 만큼 가야한다. 가로 w, 세로 h만큼 총 w + h을 가게 되는데,..
[백준 11689번 C/C++] GCD(n, k) = 1
[백준 11689번 C/C++] GCD(n, k) = 1
2024.02.11[백준 11689번 C/C++] GCD(n, k) = 1 https://www.acmicpc.net/problem/11689 11689번: GCD(n, k) = 1 자연수 n이 주어졌을 때, GCD(n, k) = 1을 만족하는 자연수 1 ≤ k ≤ n 의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 해결전략 수학 오일러 파이함수 정답코드 #include . using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); long long n; cin >> n; long long answer = n; // 오일러 피를 계산할 변수를 선언하고, 초기값으로 n을 할당. for (long ..
[프로그래머스 C++] 리코쳇 로봇
[프로그래머스 C++] 리코쳇 로봇
2024.02.09[프로그래머스 C++] 리코쳇 로봇 https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 너비우선탐색 BFS 정답코드 #include #include #include #include using namespace std; const int INTMAX = 99999; int dirY[4] = { -1, 0, 1, 0 }; int dirX[4] = { 0, -1, 0, 1 }; int solution(vector v) { int r = v.s..
[프로그래머스 C++] 유사 칸토어
[프로그래머스 C++] 유사 칸토어
2024.02.08[프로그래머스 C++] 유사 칸토어 https://school.programmers.co.kr/learn/courses/30/lessons/148652 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 수학 재귀 처음 시도한 코드 - 시간초과 #include using namespace std; int solution(int n, long long l, long long r) { string str = "1"; while (n--) { string temp = ""; for (int i = 0; i < str.size(); i++) { if (str..
[Codility] FirstUnique
[Codility] FirstUnique
2024.02.07[Codility] FirstUnique https://app.codility.com/programmers/trainings/4/first_unique/start/ Codility Your browser is not supported Please, update your browser or switch to a different one. Learn more about what browsers are supported app.codility.com 해결전략 정렬 sort 정답 코드 #include #include #include int solution(vector &A) { int n = A.size(); queue Q; map myMap; for(int i = 0; i < n; i++){ Q.push(A[..
[Codility] MaxNonoverlappingSegments
[Codility] MaxNonoverlappingSegments
2024.02.06[Codility] MaxNonoverlappingSegments https://app.codility.com/programmers/lessons/16-greedy_algorithms/ 16. Greedy algorithms lesson - Learn to Code - Codility Tie adjacent ropes to achieve the maximum number of ropes of length >= K. app.codility.com 해결전략 그리디 Greedy A[i]가 cur보다 클 때만 쌍을 선택하므로, 항상 A 벡터의 값이 증가하는 방향으로 요소를 선택한다. 정답코드 #include int solution(vector &A, vector &B) { int n = A.size(); if(..