728x90
반응형
- [알고리즘][파이썬] 백준_10814_나이순 정렬2021-12-25 15:44:04https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net N명의 회원을 정렬해야 한다. 나이순으로 정렬하고, 나이가 같으면 먼저 입력된 순으로 정렬한다. 1차 시도(틀렸습니다) # 1차 시도(결과: 틀렸습니다) import sys N = int(sys.stdin.readline()) ipt = [] id = 0 # 나이가 같을 경우 기준으로 삼을 가입순서 id를 부여했다. for i in range(N): ipt.append(sys.stdin.readline..
- [알고리즘][파이썬] 백준_1181_단어 정렬2021-12-24 14:13:01https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net N개의 알파벳 소문자 문자열을 길이가 짧은 것부터, 길이가 같으면 사전 순으로 정렬해야한다. 시간 초과 # 1차 시도(결과: 시간 초과) import sys N = int(sys.stdin.readline()) ipt = [] for _ in range(N): ipt.append(sys.stdin.readline().strip('\n')) # strip() 메서드 이용하여 '\n' 제거..
- [알고리즘][파이썬] 백준_11651_좌표 정렬하기 22021-12-23 11:55:05https://www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net x, y 좌표의 점이 N개 있다. 좌표 y를 기준으로 점을 오름차순 정렬해야한다. 이때 y가 동일하면 x로 순서를 결정한다. 11650번 좌표 정렬하기 1은 x가 우선이라 sort 함수의 사용만으로 문제를 해결 할 수 있었다. 반면 다소 까다로워진 문제다. 시간 초과 # 1차 시도(결과: 시간 초과) import sys # xy를 yx로 순..
- [알고리즘][파이썬] 백준_11650_좌표 정렬하기2021-12-20 10:45:25https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net x, y 좌표의 점이 N개 있다. 점을 오름차순 정렬해야한다. 이때 x가 동일하면 y를 기준으로 순서를 결정한다. list 제공 함수 sort를 이용하면 매우 간단히 해결 할 수있는 문제이다. 하지만 처음에 문제의 의도를 이해하지 못해 애를 먹었다. 아래 그림과 같이 오름차순 정렬하면 되는 간단한 문제인데 너무 어렵게 생각했다. list 제공 ..
- [알고리즘][파이썬] 백준_1427_소트인사이드2021-12-16 20:43:46https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 숫자 문자열을 내림차순 정렬해야 한다. list 제공 함수 이용(sort, reverse) # list 제공 함수 이용(결과: 맞았습니다!) s = input() lst = list(s) lst.sort() lst.reverse() print(''.join(lst)) 리스트에서 제공하는 오름차순 정렬 함수 sort, 리스트에서 제공하는 순서 뒤집기 함수 reverse, 를 이용하여 문제를 해결하였다. sort, reverse는 lst변수에 담긴 list(s) 리스트 자체를 변경한다...
- [알고리즘][파이썬] 백준_2108_통계학2021-12-16 15:25:25https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net N개의 입력 값으로 산술평균, 중앙값, 최빈값, 범위를 출력해야 한다. 제출 결과 "시간 초과"로 매우 고생했다. 범인은 최빈값! 시간 초과(리스트 count 메소드 사용) # 최빈값 구할 때 for문 사용하여 값의 빈도수(cnt) 구함(결과: 시간 초과) import sys N = int(sys.stdin.readline()) nums = [] for _ in range(N): nums.append(int(s..
- [알고리즘][파이썬] 백준_10989_수 정렬하기 32021-12-14 23:42:58https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 수 정열하기 1~2는 몸 풀기이고, 이 문제가 찐이다! 수 정열하기 1~2와 요구는 동일 한데, 메모리 제한에 주의해야 한다. 2750번 128MB, 2751번 256MB인데 반해 10989번은 8MB이다. 메모리 초과 "힙정렬, 퀵정렬" # 힙정렬 시도(결과: 메모리 초과) # 소스코드 출처(https://it-garden.tistory.com/128) def heap_sort(a): for i in range(1..
- [알고리즘][파이썬] 백준_2750, 2751_수 정렬하기 1~22021-12-14 16:59:50https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net N개의 수가 주어졌을 때, 오른차순 정렬해야 한다. 제출 코드 # 2750번 문제 # 리스트의 sort 메소드를 이용한 풀이 (결과: 맞았습니다!) N = int(input()) lst = [] for i in range(N): lst.append(int(input())) lst.sort() # sort 메소드 이용 for i in lst: print(i) 파이썬 리스트의 sort 메소드로 간단히 해결 할..
728x90
반응형