건전한 건전지
반응형
article thumbnail
[BOJ/CPP] 빈도 정렬 - 2910번 / C++풀이
Algorithm 2023. 5. 12. 00:18

https://www.acmicpc.net/problem/2910 2910번: 빈도 정렬 첫째 줄에 메시지의 길이 N과 C가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ C ≤ 1,000,000,000) 둘째 줄에 메시지 수열이 주어진다. www.acmicpc.net 정렬 문제이다. 숫자 N개를 입력받아서 정렬을 하는 알고리즘을 작성 정렬 기준 1. 숫자가 많이 나오는 순서 2. 개수가 같다면 먼저 나온 것이 앞에 있어야 함 해당 숫자가 몇번째에 등장하였는지 알 수 있는 값을 넣어준 후 그것을 기준으로 정렬 후 출력한다. map과 pair를 조합하여 풀었다. 해결 방법 1. 숫자를 입력 받아 map 안에 없는 숫자라면 새로 넣어준다. ex) 3이 5번째에 처음 들어왔다고 예를 들면 [3, 1, 5] 1..

[BOJ/CPP] 동일한 단어 그룹화하기 - 16499번 [C++풀이]
Algorithm 2023. 5. 3. 15:22

https://www.acmicpc.net/problem/16499 16499번: 동일한 단어 그룹화하기 첫째 줄에 단어의 개수 N이 주어진다. (2 ≤ N ≤ 100) 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 소문자로만 이루어져 있고, 길이는 10을 넘지 않는다. www.acmicpc.net 같은 문자들로 이루어진 단어끼리 짝을 지어 몇개의 그룹으로 나뉘는지 알아내는 문제 ex) dog == god == gdo == dgo == odg ⋯ -> 같은 그룹 문자열을 입력받아 사전순으로 정렬한 후 set에 넣어서 같은 문자열들은 하나의 그룹으로 취급해준다. (abcd, dbca, dcab -> sort를 사용하면 모두 abcd로 정렬됨) 전체 코드 #include using..