본문 바로가기

대학생54

[C++] [백준 2783] 삼각 김밥 문제 풀기 전 생각 : /* 먼저 입력받은 가격과 그램을 가지고 그램당 가격을 구한뒤 그 후로 입력받은 가격과 그램을 가지고 계산한 그램당 가격과 비교한다. 가장 싼 값을 저장하고 반복을 계속한다. 마지막에 구한 값을 리턴한다. */ #include using namespace std; int main() { float a,b,n,min; scanf("%f %f",&a,&b); min = a/b; scanf("%f",&n); for(int i=0 ; i a/b) min = a/b; } printf("%.2f",min*1000); return 0; } https://www.acmicpc.net/problem/2783 2783번: 삼각 김밥 첫째 줄에 세븐25의 삼각 김밥 가격 정보 X와 Y가 주어진다. (.. 2021. 8. 9.
[C++] [LeetCode 543] Diameter of Binary Tree 문제 풀기 전 생각 : /* 재귀함수의 형식으로 문제를 풀기로 결정했다 res에 제일 깊은 깊이값을 저장하고 리턴할 때 해당 노드가 비어있지 않다면 해당 함수가 리턴받은 값에서 가장 큰 값에 1을 더한후 리턴한다 그리고 리턴받은 left 값과 right 값을 더한 값이 res와 비교해 더욱 큰 값을 res에 넣는다. */ class Solution { public: int diameterOfBinaryTreeUtil(TreeNode* root, int &res) { if(root == NULL) return 0; int l = diameterOfBinaryTreeUtil(root->left, res); int r = diameterOfBinaryTreeUtil(root->right, res); res =.. 2021. 8. 9.
[C++] [백준 3040] 백설 공주와 일곱 난쟁이 문제 풀기 전 생각 : /* 아홉명의 난장이의 모자에 쓰인 숫자 9개 중 7개를 더했을때 숫자 100이 되는 숫자들이 출력되어야 한다 어느 난쟁이가 가짜인지 판별하려면 모두 더한 값에서 두 숫자를 뺐을때 100이 되면 두 숫자가 모자에 쓰인 난장이가 가짜인것을 알 수 있다 */ #include using namespace std; int main() { int n[9],sum=0; for(int i=0 ; i 2021. 8. 9.
[C++] [백준 15552] 빠른 A+B 문제 풀기 전 생각 : /* 이 문제가 말하려는 것은 아마도 입출력에서 걸리는 시간을 줄일 줄 알아야 한다는 것 같다 printf scanf 함수들을 사용하면 큰 문제 없이 풀 수 있는 문제이다 */ #include int main() { int n,a,b; scanf("%d",&n); for(int i=0 ; i> T; for (int i = 0; i > A >> B; sstream 2021. 8. 9.
[C++] [백준 1920] 수 찾기 문제 풀기 전 생각 : /* 먼저 비교에 쓰일 숫자들을 입력 받고 숫자를 입력받을 때 위에서 저장한 숫자들에 존재하는지 find 함수를 통해 판별한다. 만약 존재한다면 1을 출력 존재하지 않는다면 0을 출력한다 */ #include using namespace std; int main(){ int n,m,tmp; int *p; scanf("%d",&n); int a[n]; for(int i=0 ; i n; for(int i=0;i> a[i]; } sort(a,a+n); cin >> m; for(int i=0;i> t; if(binary_search(a,a+n,t)) cout 2021. 8. 9.
[C++] [LeetCode 206] Reverse Linked List 문제 풀기 전 생각 : /* 링크드 리스트 iterator 를 사용한 반복문으로 현재 노드의 다음 노드의 포인터를 저장하고 현재 노드의 연결고리를 끊고 전 노드와 연결 그리고 전 노드를 현재 노드로 변경 작업을 모든 노드를 거칠 때까지 반복 */ class Solution { public: ListNode* reverseList(ListNode* head) { ListNode* pre=head, *prepre= NULL; if(head == NULL) return head; for(ListNode* ln = head->next ; ln != NULL ; ln = ln->next){ pre->next = prepre; prepre = pre; pre = ln; } pre->next = prepre; ret.. 2021. 8. 9.
[C++] [LeetCode 26] Remove Duplicates from Sorted Array 문제 풀기 전 생각 : /* 반복문으로 바로 전 원소와 비교하며 만약 바로 전 원소가 현재 원소보다 크다면 count를 리턴하고 그렇지 않다면 전 원소를 현재 원소로 채우고 count를 증가시킨다. */ class Solution { public: int removeDuplicates(vector& nums) { if(nums.size() == 0) return 0; int x = nums[0]; int count = 1; for(int i=1 ; i 2021. 8. 9.
[C++] [LeetCode 704] Binary Search 문제 풀기 전 생각 : /* find 함수를 사용한다. 만약 존재하지 않는다면 -1을 리턴하고 존재한다면 find 함수에서 얻은 값에서 begin iterator를 뺸 값을 리턴한다. */ class Solution { public: int search(vector& nums, int target) { auto it = find(nums.begin(), nums.end(), target); if(it == nums.end()) return -1; return it-nums.begin(); } }; https://leetcode.com/problems/binary-search/ Binary Search - LeetCode Level up your coding skills and quickly land a .. 2021. 8. 9.
[C++] [LeetCode 35] Search Insert Position 문제 풀기 전 생각 : /* find 함수를 사용해서 해당 타겟이 존재하는지 판별 만약 존재한다면 타겟의 인덱스를 리턴 존재하지 않는다면 반복문으로 타겟보다 큰 값이 나올때 검색하다 발견하면 리턴 마지막까지 타겟이 크다면 입력받은 백터의 크기를 리턴 */ class Solution { public: int searchInsert(vector& nums, int target) { auto it = find(nums.begin(), nums.end(), target); if(it != nums.end()) return it-nums.begin(); for(int i=0 ; i target) return i; } return nums.size(); } }; https://leetcode.com/problems.. 2021. 8. 9.
[C++] [백준 11004] K번째 수 문제 풀기 전 생각 : /* 뭐야 엄청 쉽네 라고 생각했다 정렬하고 2번째 숫자 출력하면 끝이다 접근법은 맞았다. */ #include #include using namespace std; bool compare(int x, int y) { return x > n >> k; int arr[n]; for(int i=0 ; i> k; for (int i = 0; i > ipt[i]; nth_element(ipt, ipt + k - 1, ipt + n); cout 2021. 7. 27.
[C++] [백준 11650] 좌표 정렬하기 문제 풀기 전 생각 : /* pair 와 sort 함수를 사용하면 쉽게 풀 수 있는 문제이다! */ #include #include using namespace std; bool comp(pair a,pair b){ if(a.first == b.first){ return a.second > n; pair arr[n]; for(int i=0 ; i> arr[i].first >> arr[i].second; } sort(arr,arr+n,comp); for(int i=0 ; i> v[i].second; } sort(v, v+n); for(int i = 0; i < n; i++) cout 2021. 7. 27.
[C++] [백준 1427] 소트인사이드 문제 풀기 전 생각 : /* 숫자의 입력을 문자열로 받는다. 그리고 해당 문자열을 각 글자별로 쪼개어 저장한다. 그리고 정렬 후 출력한다. */ #include #include using namespace std; bool comp(int a,int b){ return a > b; } int main(){ string s; cin >> s; int arr[s.length()]; for(int i=0 ; i 2021. 7. 27.