코테용 문제풀이/백준

    통계학 풀이

    문제 링크: https://www.acmicpc.net/problem/2108 백준 정렬 6단계 - 2108번 통계학을 풀어보았다. 풀이: 평균, 중앙값, 최빈값, 범위를 출력하면 된다. 최빈값 조건이 까다로우니 잘 해결해야 한다. C++의 경우, https://cryptosalamander.tistory.com/47 를 참조했다. 파이썬의 경우, counter를 이용해 풀었다. C++ #include #include #include #include using namespace std; vector arr; int main() { int num,tmp,range,middle = 0,most_val,mean = 0; int most = -9999; int number[8001] = {0,}; bool no..

    수 정렬하기 3 풀이

    문제 링크: https://www.acmicpc.net/problem/10989 백준 정렬 5단계 - 10989번 수 정렬하기 3을 풀어보았다. 풀이: 메모리와 시간에 제한이 있으므로, 적절한 정렬 알고리즘을 골라야 한다. C++의 경우, ios::sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL)을 써서 시간을 줄였다. 파이썬의 경우, 입력값의 위치에 횟수를 저장하고 그 횟수만큼 출력시키게 했다. C++ #include using namespace std; int main() { ios::sync_with_stdio(false); // 시간 줄이기용 cin.tie(NULL); cout.tie(NULL); int n; cin>>n; int arr[10001] ..

    수 정렬하기 2 풀이

    문제 링크: https://www.acmicpc.net/problem/2751 백준 정렬 4단계 - 2751번 수 정렬하기 2를 풀어보았다. 풀이: 숫자를 입력받아 정렬해 출력하면 된다. 수가 많으므로 시간이 적게 드는 알고리즘을 사용하는 게 좋다. 파이썬의 경우, input()대신 sys.stdin.readline()으로 입력을 받으면 된다. C++ #include #include #include using namespace std; int main() { int num; cin >> num; vectornums; int a; for(int i=0;i> a; nums.push_back(a); } sort(nums.begin(),nums.end()); for(int i=0;i

    커트라인 풀이

    문제 링크: https://www.acmicpc.net/problem/25305 백준 정렬 3단계 - 25305번 커트라인을 풀어보았다. 풀이: k번째의 점수를 출력한다. C++ #include #include #include using namespace std; int main() { int n,k; cin>>n>>k; vector v(n); for(int i=0;i>v[i]; } sort(v.begin(), v.end()); cout

    대표값2 풀이

    문제 링크: https://www.acmicpc.net/problem/2587 백준 정렬 2단계 - 2587번 대표값2를 풀어보았다. 풀이: 5개의 자연수를 받고, 평균과 중앙값을 구한다. C++ #include #include #include using namespace std; int main() { vector v; int mean=0; for(int i=0;i>inp; v.push_back(inp); mean+=inp; } sort(v.begin(), v.end()); cout

    수 정렬하기 풀이

    문제 링크: https://www.acmicpc.net/problem/2750 백준 정렬 1단계 - 2750번 수 정렬하기를 풀어보았다. 풀이: 삽입 정렬을 이용해 풀었다. C++ #include #include using namespace std; int main() { int cnt, n; cin>>cnt; vector nums; for(int i=0;i>n; nums.push_back(n); } for(int i=0;i

    색종이 풀이

    문제 링크: https://www.acmicpc.net/problem/2563 백준 2차원 배열 3단계 - 2563번 색종이를 풀어보았다. 풀이: 0으로 초기화한 2차원 배열을 만들고 그 위를 1로 덮는다. C++ #include using namespace std; int main() { int arr[101][101]={0,}; int n,x,y; int area=0; cin>>n; for(int k=0;k>x>>y; for(int i=x;i

    최댓값 풀이

    문제 링크: https://www.acmicpc.net/problem/2566 백준 2차원 배열 2단계 - 2566번 최댓값을 풀어보았다. 풀이: 2차원 배열에서 최댓값과 그 위치를 출력하면 된다. 위치를 출력할 때 0부터 시작하므로 1을 더해줘야 한다. C++ #include using namespace std; int main() { int arr[9][9]={0,}; int max=-1; int x,y; for(int i=0;iarr[i][j]; if(arr[i][j]>max) { max=arr[i][j]; x=i; y=j; } } } cout

    행렬 덧셈 풀이

    문제 링크: https://www.acmicpc.net/problem/2738 백준 2차원 배열 1단계 - 2738번 행렬 덧셈를 풀어보았다. 풀이: 배열을 만들고 입력값을 받아 더한다. C++ #include using namespace std; int main() { int n,m; cin>>n>>m; int arr[101][101]={0,}; for(int k=0;k

    골드바흐의 추측 풀이

    문제 링크: https://www.acmicpc.net/problem/9020 백준 기본 수학 2 6단계 - 9020번 골드바흐의 추측을 풀어보았다. 풀이: 짝수를 두 소수의 합으로 나타내는 문제이다. C++ #include using namespace std; const int range=10001; int main() { int nums[range]={0,}; for(int j=2;j