---
# System prepended metadata

title: Số lần xuất hiện 2
tags: [basic, Tutorial+Code, array, exercise]

---

###### tags: `exercise` `array` `basic` `Tutorial+Code` 

# Số lần xuất hiện 2

### Link đề
*    [https://lqdoj.edu.vn/problem/cnt02](https://lqdoj.edu.vn/problem/cnt02)

### Yêu cầu đề

Nhập vào một mảng gồm n số dương, in ra các phần tử của mảng theo thứ tự tăng dần cùng với số lần xuất hiện của chúng, các số trùng nhau thì chỉ ghi một lần.

### Hướng dẫn

1. Nhập số phần tử và các giá trị trong mảng.
    - Sử dụng các hàm: input(), map(), split(), list(), int().
2. Sắp xếp mảng a thành mảng tăng dần để những phần tử giống nhau đứng cạnh nhau.
3. Khởi tạo biến đếm = 1. Biến này dùng để đếm số lần xuất hiện của từng giá trị.
4. So sánh nó với phần tử trước đó:
    * Nếu giống nhau, tức đứng trước đã được lặp lại thêm 1 lần, vì vậy tăng biến đếm lên 1.
    * Nếu không, tức phần tử đứng trước không còn xuất hiện nữa, ta in nó cùng số lần lặp lại của nó ra.
        * Sau đó đặt biến đếm trở lại về 1 để đếm số lần xuất hiện của giá trị tiếp theo.
5. Chú ý giá trị cuối cùng chưa được in ra, ta phải in thêm kết quả của giá trị cuối cùng trong mảng.
    
### Code

!!! **Hãy tham khảo hướng dẫn và thử tự làm trước. Nếu gặp sai sót và không tự khắc phục được, hãy quay lại phần này để được giúp đỡ.**

```python=
# Copyright (c) 2023, Le Duc Phuc Long
"""
If you don't think twice, you have to code twice.
"""
n = int(input())
arr = list(map(int, input().split()))

arr.sort()
# khởi tạo biến đếm
cnt = 1
for i in range(1, n):
    if arr[i-1] == arr[i]:
        cnt += 1
    else:
        print(arr[i-1], cnt)
        cnt = 1
print(arr[-1], cnt)
```

### Sai sót, thắc mắc, đóng góp ý kiến
- Nếu bạn phát hiện sai sót, có thắc mắc, hay bất kì ý kiến đóng góp nào...
-> Xin hãy cho tôi biết qua: m.me/phuclong.leduc