분류 전체보기 387

백준 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

백준 8979 올림픽 c++

gold, silver, bronze 배열을 순서대로 정렬한다는 것에 초점을 두어 정렬하는데 집중하는 것이 아니라, 문제에서 주어진 포인트대로 구현하는 것이 중요했다. " 한 국가의 등수는 (자신보다 더 잘한 나라 수) + 1로 정의된다." 가 중요했다!! for문으로 한 나라씩 돌아가며 '이 나라가 k나라 보다 더 앞선 것 같으면' 등수를 1씩 더해나가는 식으로 구현하면 간단했다. 작성한 코드는 다음과 같다.

백준 2024.04.06

백준 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