본문 바로가기

Problem Solving

(152)
[백준/C++] 10814번 나이순 정렬 #include using namespace std; bool compare(const pair &a, const pair &b) { return a.first > N; vector arr(N); for(int i = 0; i > arr[i].first >> arr[i].second; } stable_sort(arr.begin(), arr.end(),compare); //sort(arr.begin(), arr.end(), compare); for(auto it : arr) { cout
[백준/C++] 2693번 N번째 큰 수 #include #include #include #include #include #include #include using namespace std; int main() { int N; vector arr(10); cin >> N; for(int i = 0; i > arr[j]; } sort(arr.begin(), arr.end(), greater()); cout
[Leetcode/C++] 169. Majority Element class Solution { public: int majorityElement(vector& nums) { sort(nums.begin(), nums.end()); return nums[nums.size()/2]; } }; 이 문제는 현재 배열에서 과반수(50%이상)을 차지하고 있는 숫자를 찾아내는 문제입니다. 저는 간단하게 sorting한 이후 배열의 가운데에서 있는 숫자를 리턴하도록 하였습니다. 왜냐하면 과반수니까 가운데 부분을 무조건 차지하고 있을테니 이렇게 하였습니다. 장점은 따로 숫자를 세지 않기 때문에 솔팅하는 시간 O(nlogn)만큼만 걸립니다! 문제: https://leetcode.com/problems/majority-element/ Majority Element - LeetCode L..
[백준/C++] 10250번 ACM 호텔 #include #include #include #include #include using namespace std; int main() { int N; cin >> N; int stair, number, chung, bang, son; for(int i = 0; i > chung >> bang >> son; stair = son % chung; if(stair == 0) cout
[Leetcode/C++] 509. Fibonacci Number class Solution { public: int fib(int n) { if(n == 0) return 0; return n > 1 ? fib(n-1) + fib(n-2) : 1; } }; recurrsion (재귀함수) 을 처음 이해하기 가장 좋은 문제입니다. 문제: https://leetcode.com/problems/fibonacci-number/ Fibonacci Number - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com
[프로그래머스/C++] 콜라츠 추측 #include #include using namespace std; int solution(int num) { int answer = 0; for(answer; answer < 500; ++answer) { if(num == 1) break; num % 2 == 1 ? num = num*3 +1 : num /= 2; } return answer == 500 ? answer = -1 : answer; } 3항 연산자를 이용해 해당 조건을 반복하도록하고 500번 이상 반복할 경우 -1을 리턴하도록 구현하였습니다. 문제: https://programmers.co.kr/learn/courses/30/lessons/12943 코딩테스트 연습 - 콜라츠 추측 1937년 Collatz란 사람에 의해 제기된 이 추측..
[프로그래머스/C++] 체육복 #include #include #include using namespace std; int solution(int n, vector lost, vector reserve) { int answer = 0; answer = n - lost.size(); int i = 0; int j = 0; sort(lost.begin(), lost.end()); sort(reserve.begin(), reserve.end()); for (int k = 0; k < reserve.size(); ++k) { if (find(lost.begin(), lost.end(), reserve[k]) != lost.end()) { lost.erase(find(lost.begin(), lost.end(), reserve[k])); re..
[백준/Python] 2606번 바이러스 (DFS,BFS,유니온파인드) 문제 설명 문제 풀이 1번 컴퓨터와 연결된 컴퓨터의 갯수를 구하는 문제입니다. 총 3가지 방법의 풀이로 문제를 해결할 수 있습니다. BFS(너비우선탐색): 1번 컴퓨터와 연결된 가장 맨허튼 거리가 가까운 컴퓨터부터 갯수 파악 DFS(깊이우선탐색): 1번 컴퓨터와 연결된 컴퓨터의 마지막 연결점을 우선적으로 다녀오며 연결 갯수 파악 유니온파인드: 부모를 기준으로 묶어진 집합의 원소 갯수를 파악 이 문제에서는 방향이 중요하지 않으므로 undirected graph(방향이 없는 그래프)로 만들기 위해 양방향 모두 연결처리 해주었습니다. 1번 BFS풀이의 경우 array list 형식으로 100개의 모든 배열을 생성하는 방법을 사용해서 풀어냈고 2번 DFS풀이의 경우 linked list 형식으로 연결된 노드만 ..