본문 바로가기

코딩테스트72

[C++][프로그래머스] 더 맵게 :: soeftware 문제 설명 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다. Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 때, 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 return 하도록 solution 함수를 작성해주세요. 제한 사항 scovil.. 2020. 4. 13.
[C++][백준] 11004번 K번째 수 :: soeftware 소스코드 정렬 sort #include #include #include using namespace std; bool compare(int x, int y) { return x < y; } int main(void) { int N, K; scanf("%d %d", &N, &K); vector v(N, 0); for (int i = 0; i < N; i++) { scanf("%d", &v[i]); } sort(v.begin(), v.end(), compare); printf("%d\n", v[K-1]); } 2020. 4. 13.
[C++][leetcode] Last Stone Weight :: seoftware 소스코드 class Solution { public: int lastStoneWeight(vector& stones) { if(stones.empty()) return 0; priority_queue pq; for(int i = 0; i 1) { int first = pq.top(); pq.pop(); int second = pq.top(); pq.pop(); if(first != second) pq.push(first-second); } return pq.size()==1?pq.top():0; } }; 1. 우선순위 큐 priority queue 를 사용해서 풀었다. pq를 사용하지 않고 while문 돌 때마다 sort를 수행해도 될 것 같다. 2. pq에 내림차순으로 stones에 있는 원소들을 넣는.. 2020. 4. 13.
[C++][leetcode] Diameter of Binary Tree :: seoftware 소스코드 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { int max; void maxDepth(TreeNode* root) { if (root == NULL) { return; } max = std::max(max, height(root->left) + height(root->right)); maxDepth(root->left); maxDepth(root->right); } int height(TreeNode* ro.. 2020. 4. 12.
[C++][leetcode] Min Stack :: seoftware 소스코드 class MinStack { stack elements; stack sorted; public: /** initialize your data structure here. */ MinStack() { } void push(int x) { elements.push(x); if(sorted.empty() || sorted.top() >= x) sorted.push(x); } void pop() { if(elements.empty()) return; if(sorted.top() == elements.top()) sorted.pop(); elements.pop(); } int top() { return elements.top(); } int getMin() { return sorted.top(); } .. 2020. 4. 12.
[c++][leetcode] Backspace String Compare :: seoftware #은 앞에 문자를 지우는 역할이다. #이 자기 역할을 모두 수행하고 난 후의 문자열을 비교하는 문제 소스코드 class Solution { public: bool backspaceCompare(string S, string T) { stack s_st, t_st; for(int i = 0; i < S.length(); i++){ if(S[i] != '#') s_st.push(S[i]); else if(!s_st.empty()){ s_st.pop(); } } for(int i = 0; i < T.length(); i++){ if(T[i] != '#') t_st.push(T[i]); else if(!t_st.empty()){ t_st.pop(); } } if(s_st.empty() && t_st.empty(.. 2020. 4. 10.
[c++][백준] 1475번 방 번호 :: seoftware 소스코드 #include #include using namespace std; int digit[10]; int main(void) { string N; cin >> N; int len = N.length(); for (int i = 0; i < len; i++) { digit[N[i] - '0']++; } //6과 9처리 (반절씩) int six_nine = (digit[6] + digit[9] + 1) / 2; digit[6] = six_nine; digit[9] = six_nine; int M = 0; for (int i = 0; i < 10; i++) { if (digit[M] < digit[i]) M = i; } cout 2020. 4. 10.
[C++][백준] 14502번 연구소 :: seoftware 소스코드 BFS, 브루트포스 #include #include using namespace std; int N, M; int map[8][8]; int temp[8][8]; int dx[] = { -1, 0, 1, 0 }; int dy[] = { 0, 1, 0, -1 }; int answer = 0; //temp에 기존 map을 복사하는 함수 void copyMap(int (*from)[8], int (*to)[8]) { for (int n = 0; n < N; n++) { for (int m = 0; m < M; m++) { to[n][m] = from[n][m]; } } } //[BFS] 벽을 3개 세운 후 바이러스를 퍼뜨리고 전염되지 않은 곳을 세준다. void spreadVirus() { int r.. 2020. 4. 10.
[C++][leetcode] Middle of the linked list :: seoftware 소스코드 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* middleNode(ListNode* head) { int sz = 0; ListNode *cur = head; while(cur != NULL){ sz++; cur = cur->next; } sz /= 2; cur = head; for(int i = 0; inext; } return cur; } }; head가 포인터이므로 cur도 포인터로 선언해야 한다! 2020. 4. 9.