반응형

정렬 3

[백준 2108] 통계학 C++

문제 백준 2108 통계학 C++ 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 풀이 예전에 재채점으로 틀렸었는데 여유될 때 다시 풀어보았다. 먼저 수를 입력받은 뒤 오름차순 정렬한다. 1. 산술평균 : 루프를 돌면서 계산하면 된다. 반올림 주의 2. 중앙값 : 원소 개수가 홀수일 때와 짝수일 때를 나눠서 계산한다. 3. 최빈값 : 이게 제일 귀찮았는데, 다음과 같은 과정을 거친다. 3-1. 먼저 가장 자주 등장한 횟수를 0으로 초기화해 준다. 3-2. 루프를 돌면서 현재값의 등장 횟수를 1 증가시킨다. 3-3-1. 현재..

알고리즘/백준 2023.12.23

[백준 5052] 전화번호 목록 C++

문제 백준 5052 전화번호 목록 C++ 5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net 풀이 트라이나 정렬을 이용합니다 1) 정렬로 풀이 1. 문자열을 모두 입력 받은 후 오름차순 정렬합니다. -> 문자열 순서가 작은 것이 앞으로 오고, 순서가 같다면 string 길이가 더 작은 것이 앞으로 옵니다. 2. i번째 문자열이 i+1문자열의 앞과 똑같다면 일관성이 없으므로 루프를 중단하고 NO를 출력합니다. 3. N-1번째 문자열까지 똑같지 않다면 일관성이 있으므로 YES를 출력합니다. 소..

알고리즘/백준 2021.11.27

[백준 2470] 두 용액 C++

문제 백준 2470 2470번: 두 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00 www.acmicpc.net 풀이 두 포인터를 사용합니다. 먼저 입력을 받아 오름차순으로 정렬합니다. 합이 0에 가까워져야 하므로, 합이 양수일 때는 right를 왼쪽으로 옮겨 합을 감소시키고 합이 음수일 때는 left를 오른쪽으로 이동시켜 합을 증가시킵니다. 합의 절댓값이 최솟값보다 작다면 갱신해주고 target에 저장합니다. 소스 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2..

알고리즘/백준 2021.09.25
반응형