일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Tags
- Algorithm
- programmers
- 15965
- 24511
- 6730
- PS
- solved.ac
- SWEA
- 25379
- 1342
- 11688
- PYTHON
- 2866
- 프로그래머스
- 20006
- sovled.ac
- 자바
- 파이썬
- pccp
- 사용자정의필터
- java
- 9081
- 백준
- sloved.ac
- 17087
- 알고리즘
- 장고
- 23971
- Django
- 라이브러리
Archives
- Today
- Total
코깽이의 코딩일기
Python 백준 1181 - 단어 정렬 본문
반응형
백준 링크
https://www.acmicpc.net/problem/1181
문제
입력
출력
입출력 예시
제출한 코드
N = int(input())
data = []
for i in range(N):
data.append(input())
data = list(set(data))
data.sort(key=lambda x: (len(x), x))
print(*data, sep="\n")
처음 제출한 코드이다.
- N 입력받기
- N번 data에 값 넣기
- 중복 제거를 위한 set() 함수 사용
- 길이순 -> 사전순 정렬을 위하여 sort() 함수 사용
- sort() 함수의 매개변수에 labda함수를 전달
- 출력 조건에 맞게 "\n"을 sep으로 설정하여 data를 출력
import sys
N = int(sys.stdin.readline())
data = []
for i in range(N):
data.append(sys.stdin.readline().strip())
data = list(set(data))
data.sort(key=lambda x: (len(x), x))
print(*data, sep="\n")
이전 코드와 동일한 방식으로 진행되었지만 input() 대신 sys.stdin.readline()을 사용하여 코드를 수정하였다.
마지막 "\n"가 data에 append 되기 때문에 strip() 함수를 이용하여 제거시켜 주었다.
테스트 케이스에서 과연 시간이 얼마나 줄어들지 궁금하여서 작성하게 되었다.
내가 제출한 코드 기준으로 입력받는 방식만 바꿨을 뿐인데 속도차이가 약 14배가량 나오는 것을 확인할 수 있었다.
반응형
'PS > 백준' 카테고리의 다른 글
Python 백준 24479 - 알고리즘 수업 - 깊이 우선 탐색 1 (1) | 2023.11.27 |
---|---|
Python 백준 1764 - 듣보잡 (0) | 2023.11.01 |
Python 백준 1436 - 영화감독 숌 (0) | 2023.09.27 |
Python 백준 23971- ZOAC 4 (1) | 2023.09.14 |
Python 백준 2839 - 설탕 배달 (0) | 2023.09.01 |