import sys
n = int(input())
sys.stdin.readline().split()
2022년 9월 6일 , 7일 이틀을 걸쳐 백준의 정렬 단계를 C++ 버전과 Python로 문제를 풀어보았다.
결론은 c++ 보다는 Python으로 푸는것이 훨 더 편했다.
Python을 이용을 해서 현업에서 일도 진행 해보고, 대학교에서도 가장 많이 다뤘던 것이 Python이였는데
왜 Python으로 문제를 풀 생각을 안했는지 아직도 이해가 안된다...
그래도 오랜만에 Python을 만졌기에 익히는데는 조금의 시간이 필요하지만 금방 적응할 수 있을 것 같다.
Python 으로 문제풀면서 자주 활용되는 것
1. 아래 예제 처럼 입력하는 것이 일렬로 주어졌을 경우 for문을 사용하지않고 리스트에 넣는 방법
- list, map, spilt() 을 이용하면 한줄로 리스트에 대입할 수 있다.
x = list(map(int, input().split()))
예제 입력 1
5 2
100 76 85 93 98
2. 입력처리
- Python에서 입력처리는 input() 을 이용해서 터미널에 값을 입력 하게된다.
input()은 input -> 개행 문자를 벗기기 - > 문자열로 변환 -> return의 절차를 거친다.
하지만, sys.stdin은 사용자의 입력을 받는 buffer를 만들어 그 buffer에서 읽어들이는 방식이기에 input()보다는 좀 더 빠른속도를 낼 수 있다.
import sys
n = int(input())
sys.stdin.readline().split()
3. 정렬 조건
- python에서 정렬은 다른 언어와 똑같이 오름차순이 Default이며 내림차순으로 정렬 시에는 reverse = True 값을 인자에 작성해주면 된다.
- Python은 stable sort를 제공한다.
- 정렬을 진행할 때 ['A', 1, 2] ['F', 2, 3] ['D', 1, 2] 이와 같이 여러개의 데이터가 한묶음으로 존재할 때 (key=lambda x: 대상)
를 이용하여 원하는 대상을 기준으로 정렬 할 수 있다.
x.sort(key=lambda x:x[0], reverse=True)
앞으로도 Python으로 백준 문제를 풀 예정이다.
'Algorithm' 카테고리의 다른 글
| [Algorithm] A* (A-Star) 알고리즘 (0) | 2022.10.07 |
|---|---|
| [Algorithm] 백준 Python 2941 - 크로아티아 알파벳 (0) | 2022.09.15 |
| [algorithm] 백준 C++ 18870 - 좌표 압축 (0) | 2022.09.06 |
| [algorithm] 백준 C++ 10814 - 나이순 정렬 (0) | 2022.09.06 |
| [algorithm] 백준 C++ 1181 - 단어 정렬 (1) | 2022.09.06 |