정렬 6

[프로그래머스 | 파이썬3] 실패율 - 정렬

https://programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr > 정렬 딕셔너리를 선언해서 key값엔 stage 단계, value값엔 실패율을 담은 후, sorted로 정렬했다. 그런데 문제는 sorted에서 dict.items()로 정렬하는 과정에서 딕셔너리가 리스트+튜플 형태로 변하기 때문에, 리스트 내의 튜플에서 stage값만 추출하기 위해 다시 반복문을 돌렸다. * 마지막 스테이지까지 도달한 사람이 없을 경우(마지막..

[백준 | 파이썬3] 1181. 단어정렬 - 정렬

https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net > 정렬 sort 메서드를 활용해 정렬한다. 정렬 조건으로 첫 번째는 단어의 길이, 두 번째는 단어 사전 순으로 설정했다. 같은 단어는 한번만 출력되기 때문에 8 line 이후의 출력 코드에서 if 문을 통해 이전의 단어와 같은 단어이면 출력되지 않도록 작성했다. * 정답으로 통과는 했으나 비효율적인 코드이다. ▶ 배운점 그렇다면 본 코드에서 비효율을 어떻게 개선할 수 있을까? 첫 번째..

[백준 | 파이썬3] 11651. 좌표 정렬하기2- 정렬

https://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 > 정렬 백준의 11650번 문제와 거의 동일한 문제로 기존 풀이에서 정렬 기준 key 값만 순서를 바꿔주면 된다.

[백준 | 파이썬3] 11650. 좌표 정렬하기- 정렬

https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net > 정렬 sort 메소드를 사용하고 파라미터인 key를 이용해 첫번째 정렬기준을 튜플에서 0번째 요소로, 두번째 정렬기준을 1번째 요소로 잡아주면 풀 수 있다. 또한 입력값을 받을 때 sys.stdin.readline을 사용해야 시간초과가 나오지 않는다.

[백준 | 파이썬3] 2751. 수정렬하기2- 정렬

https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net > 정렬 알고리즘 이전 포스팅에 정리한 내용을 참고하면 파이썬의 표준 정렬 라이브러리는 최악의 경우에도 O(NlogN)의 시간복잡도를 보장한다. 해당 문제에서는 N의 최대개수가 100만이므로 NlogN은 약 600만이다. 파이썬에선 1초에 2000만번의 연산을 수행할 수 있다고 생각하면 정렬 알고리즘을 사용하여 충분히 해결가능하다.