#include #include #include using namespace std; string solution(string s) { string answer = ""; vector str; string temp = ""; int i = 0; while(s[i] != '\0'){ if(s[i] == ' ') { str.push_back(stoi(temp)); temp = ""; } else temp = temp + s[i]; i += 1; } if(temp != "") str.push_back(stoi(temp)); answer = to_string(*min_element(str.begin(), str.end())) + " " + to_string(*max_element(str.begin(), str...
#include #include using namespace std; int solution(int n) { int answer = 0; int a = n; int b = 1; a -= 1; while(a>0){ b += 1; a = a-b; if(a%b == 0) answer += 1; } return answer+1; } 어디선가 풀어봤던 문제였다. 그것만 생각나고 풀이가 제대로 생각나지 않아서 다시 깃허브에서 확인했다. 이거는 정말 기가막힌 규칙이 있다. n 값이 15일 때, - 2개로 나누어 떨어지는 경우 ( 15 - (1+2) ) / 2 => 6 (6+1) + (6+2) == 15 -3개로 나누어 떨어지는 경우 ( 15 - (1+2+3) ) / 3 => 3 (3+1) + (3+2) + (3+3)..
#include #include using namespace std; vector value; map species_cnt; int maxx = 0; int answer = 0; void dfs(int index, int level){ if( level == value.size()/2){ answer = 0; for( auto j = species_cnt.begin(); j!=species_cnt.end(); j++){ if(j->second != 0 ) answer += 1; } maxx = maxx > answer ? maxx : answer; } else{ for(int i = index; i= n) answer = n; else answer = nums.size(); return answer; }
#include #include using namespace std; int solution(vector land) { int answer = 0; int pre_index = -1; int now_index = 0; int now_max = 0; for(int i = 0; i < land.size(); i++){ while(true){ now_max = *max_element(land[i].begin(), land[i].end()); now_index = find(land[i].begin(), land[i].end(), now_max) - land[i].begin(); if (now_index == pre_index){ land[i][now_index] = 0; } else break; } answer..
#include #include using namespace std; int solution(int n) { int answer = 0; int n_one_cnt = 0, temp = n; while(temp > 0){ if(temp%2 == 1) n_one_cnt += 1; temp = temp/2; } int temp_one_cnt; int num = n; while(true){ temp_one_cnt = 0; num += 1; temp = num; while(temp > 0){ if(temp%2 == 1) temp_one_cnt += 1; temp = temp/2; } if(temp_one_cnt == n_one_cnt){ return num; } } return answer; }
#include #include using namespace std; bool solution(string s) { bool answer = true; stack stack; for(int i =0; s[i] != '\0'; i++){ if(s[i] == '(') { stack.push('('); } else{ if(stack.empty()) return false; stack.pop(); } } if(!stack.empty()) answer = false; return answer; }
해결 방법 처음에는 누적 값으로 구하면 되는 줄 알았다. 그러면 0 값처리와 한 변의 크기를 정하기가 복잡해서 다른 방법을 찾기로 했다. board의 값을 정사각형의 한 변의 길이로 생각한다. i, j 가 0이 아니라 1인 경우에 나머지 세 개의 값 중의 최소값에 1을 더한 값이 i, j가 된다. 하나라도 0이 있으면 그냥 1로 계속된다. 이렇게 마지막 좌표까지 마치면 board 값 중에 가장 큰 값이 정사각형의 한 변의 길이가 된다. i-1, j-1 i, j-1 i-1, j i, j 이게 처음에는 이해할 수 없는데, 공책에 써보면서 이해하면 진짜 신기하다. 사람들은 어떻게 이런걸 생각해내지 처음에는 answer의 초기값을 어떻게 잡냐에 따라서 1번과 8번이 번갈아가면서 실패가 나와서 당황했다. boar..
- Total
- Today
- Yesterday
- pythonanywhere배포
- cleaned_data
- 실시간 데이터베이스
- Realtime Database
- 장고 게시판
- django 개발일지
- CellForRowAt 호출안됨
- iOS 검은 화면
- Django
- iOS 데이터베이스
- Firebase 데이터베이스 추천
- iOS 화면 안나옴
- django 로그인접근
- django pythoneverywhere
- 까만 화면
- 데이터베이스 추천
- ModelForm Form 차이
- 테이블출력안됨
- pythonanywhere배포방법
- django 태그
- CellForRowAt Not Called
- django 게시판
- 웹 배포
- iOS UITableView 출력안됨
- UITableViewController Not Working
- 장고 태그달기
- python 웹 배포
- django tag
- 알파벳 카운팅
- django clean
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |