SWEA 2063. 중간값 찾기 D1 C++ SWEA에서 문제를 풀어보았다.기존에 선언되어있는 변수가 있어 적응하기 헷갈렸다.그냥 삭제하고 내가 구현하는 대로 하면 되겠다.#include#include // sortusing namespace std;int main(int argc, char** argv){ int N; cin >> N; int arr[N]; //배열 선언 for(int i=0; i> arr[i]; sort(arr, arr+N); cout SWEA 2024.05.08
백준 14889 스타트와 링크 c++ 처음 구상한 알고리즘은 다음과 같다. 하지만 부분 집합을 구해 (n명을 두 팀으로 나눠 불러오는 과정, 이때 모든 경우의 수를 고려해 불러와야함) 불러오는 부분을 어떻게 구현할 지 생각해야했다. #include using namespace std; int main(){ //입력받기 int n; cin >> n; int arr[n][n]; for(int i=0; i arr[i][j]; // 팀이 될 수 있는 경우의 수 계산 (n C n/2) int num = 1; for(int i=n; i>(n/2); i++) num *= i; for(int i=1; i 백준 2024.04.11
백준 13627 위험한 다이빙 c++ 처음 작성한 코드는 다음과 같다. 몇 테스트 케이스는 통과되었고, 몇 테스트 케이스는 실패가 떴다. #include using namespace std; int main(){ int n,r; cin >> n >> r; int temp; bool arr[r+1]={false, }; for(int i=1; i> temp; arr[temp] = true; } if(r==n){ cout r; int temp; bool arr[n+1]={false, }; for(int i=1; i> temp; arr[temp] = true; } // arr배열 확인해 어떻게 출력할지 결정 int count = 0; for(int i=1; i temp; arr[temp] = true; } if(r==n){ cout 백준 2024.04.10
백준 15059 Hard choice c++ 코드는 다음과 같다. 요청한 개수가 더 많으면 더 요청된 만큼 출력한다. #include using namespace std; int main(){ int ca, aa, pa; cin >> ca >> aa >> pa; int cr, ar, pr; cin >> cr >> ar >> pr; int count = 0; if(ca < cr) count += (cr-ca); if(aa < ar) count += (ar-aa); if(pa < pr) count += (pr-pa); cout 백준 2024.04.09
백준 16967 배열 복원하기 c++ 이 문제에 다시 도전했다. 이 코드들은 처음 구상한 코드다. 1. 빼주는 방식을 사용하거나 2. 빼는 계산없이 해당 자리에 맞는 숫자를 그냥 출력하는 방식을 사용했다. #include using namespace std; int main(){ //입력받기 int H, W, X, Y; cin >> H >> W >> X >> Y; int arr[H+X][W+Y]; for(int i=0; i arr[i][j]; } //겹치는 줄 전까진 그대로 출력 for(int i=0; i 백준 2024.04.08
백준 20922 겹치는 건 싫어 c++ 처음 작성한 코드는 다음과 같다. 하지만 틀렸다는 결과가 나왔다. #include using namespace std; int main(){ int n,k; cin >> n >> k; int arr[n]; for(int i=0; i> arr[i]; int length = 1; int same = 1; int max_length = 1; //arr[0]를 고려해준 것임 for(int i=1; i 백준 2024.04.07
백준 8979 올림픽 c++ gold, silver, bronze 배열을 순서대로 정렬한다는 것에 초점을 두어 정렬하는데 집중하는 것이 아니라, 문제에서 주어진 포인트대로 구현하는 것이 중요했다. " 한 국가의 등수는 (자신보다 더 잘한 나라 수) + 1로 정의된다." 가 중요했다!! for문으로 한 나라씩 돌아가며 '이 나라가 k나라 보다 더 앞선 것 같으면' 등수를 1씩 더해나가는 식으로 구현하면 간단했다. 작성한 코드는 다음과 같다. 백준 2024.04.06
백준 2075 N번째 큰 수 c++ 작성한 코드는 다음과 같다. ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); 코드를 추가해 계산하는데 걸리는 시간을 줄여주는게 중요했다. #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n; cin >> n; int arr[n*n]; for (int i=0; i> arr[i]; } sort(arr, arr + n*n); cout 백준 2024.04.05
백준 19637 IF문 좀 대신 써줘 c++ 처음 작성한 코드는 다음과 같다. 하지만 시간초과라는 결과가 떴다. #include #include using namespace std; int main(){ int n,m; cin >> n >> m; string str[n]; int num[n]; for(int i=0; i> str[i] >> num[i]; } int temp; for(int i=0; i> temp; for(int j=0; j str[i] >> num[i]; } int temp; for(int i=0; i> temp; cout 백준 2024.04.05
백준 1138 한 줄로 서기 c++ 작성한 코드는 다음과 같다. 벡터의 insert 함수를 사용해 쉽게 구현할 수 있었다. 첫번째인자로 삽일할 위치, 두번째 인자로 삽입할 값을 넣어주면 되었다. + dp아닌이상 특히 벡터에서는 1이 아닌 0부터 사용해야한다. #include #include using namespace std; int main() { //입력받기 int n; cin >> n; int arr[11]; for (int i=0; i> arr[i]; //정렬 vector answer(11); for (int i=n-1; i>=0; i--) answer.insert(answer.begin()+arr[i], i+1); //출력 for (int i=0; i 백준 2024.04.03