Dreaming developer

예비 개발자를 꿈꾸는 서연이의 기록일지

Together, Tomorrow

Algorithm/Basic algorithm 4

[백준 19585번] 전설

19585번: 전설 (acmicpc.net) 19585번: 전설 Sogang ICPC Team에는 색상 이름과 닉네임의 순서로 이여서 팀명을 지으면 ICPC 리저널에서 수상할 수 있다는 전설이 있다. 색상 이름들과 닉네임들이 주어질 때, Q개의 팀에 대해 다음 리저널에서 수 www.acmicpc.net [문제] 색상 이름과 닉네임의 순서로 이여서 팀명을 지으면 ICPC 리저널에서 수상할 수 있다는 전설이 있다. 색상 이름들과 닉네임들이 주어질 때, Q개의 팀에 대해 다음 리저널에서 수상할 수 있을지 전설에 기반해 알려주는 프로그램을 작성하자. [해결전략] (1 ≤ C, N ≤ 4,000)이므로 만들 수 있는 모든 경우의 수 4000 * 4000 을 set에 저장시켜도 된다. 입력한 팀명이 존재하는지 이진..

[백준 1946번] 신입사원

1946번: 신입 사원 (acmicpc.net) 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net [문제] [해결전략] 1. 지원자들을 우선 서류심사성적이 높은 순서대로 나열한다. 2. 이제 자신보다 서류성적이 높은 사람들에 대해 면접성적이 높은지만 확인해주면 된다. ex. 서류순위 2등인사람은 서류순위 1등인사람의 면접순위 점수보다 높다면 신입사원으로 뽑힐수있다. (서류순위 3등,4등 ...과의 면접순위는 비교하지 않아도됨 . 이미 서류순위가 높기때문.) ex. 서류순위 4등인사람은 서류..

[기초 알고리즘] 버블정렬 (Bubble-sort)

버블정렬이란? 인접한 두원소를 비교하여 왼쪽원소>오른쪽원소 라면 swap하고 가장 큰 데이터를 뒤로 보내면서 오름차순으로 정렬하는 기법 [원리] : 크기가 n인 배열에서 for문을 한번 돌때마다 arr[0] ~ arr[n-i] 중에 가장 큰값이 arr[n-i]번째에 오게됨. 1회전 -> 9가 맨오른쪽으로 이동. 2회전 ->8이 맨 오른쪽으로 이동. 3회전 -> 4가 맨 오른쪽으로 이동 ... 4회전 -> 2가 맨 오른쪽으로 이동 (정렬완료) 배열의 크기가 n이라고 했을때 n-1회전을 통해 배열의 원소를 모두 오름차순으로 정리할수있다. [코드] #include #include using namespace std; //정렬할 배열 vector arr; void bubbleSort(int n) { int cn..

[기초 알고리즘] Selection Sort Algorithm(선택 정렬)

선택 정렬(selection sort)은 정렬되지 않은 데이터들에 대해 가장 큰 데이터를 찾아 가장 뒤의 데이터와 교환해나가는 알고리즘이다. n개의 원소를 가진 배열에 대해서, n-1번의 비교를 통해 가장 큰 값을 찾고, 그 값과 n번째 원소를 swap한다. 그리고 아직 정렬되지 않은 나머지 n-1개의 원소를 가진 배열에 대해서 다시 selection sort를 호출한다 (재귀적 호출) 가장 작은 데이터를 찾아 가장 앞의 데이터와 교환해나가는 최솟값 ver의 선택정렬도 있다. 그러나 오늘은 최댓값 ver.으로 다뤄보려고 한다. Input : s1,s2..sn (길이가 n인 배열) output : s1,s2...sn( nondecreasing order로 정렬된 배열) *nondecreasing order..