https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 해설 : N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 풀이 : sort를 사용하기 싫어서 조금 비효율적이지만 새로운 방법을 사용해보았다. 배열을 max range만큼 늘리고 N개의 수에 대해 flag로 표시해준다. (1로 표시해주었다.) 배열의 마지막 인덱스부터 거꾸로 탐색하며 1인 경우에 출력해주었다. 소스코드 : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16..
https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 해설 : 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오. 풀이 : 쉬운 정렬 문제이다. 0번째 인덱스가 나이이므로 이 순서로 정렬하면 자연스럽게 들어온 순서순으로 정렬하게 된다. 소스코드 : 1 2 3 4 5 6 7 8 import sys input = s..
https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 해설 : N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 풀이 : 주어진 수를 sort 함수를 사용하여 정렬하면 된다. 소스코드 : 1 2 3 4 5 6 7 8 import sys input = sys.stdin.readline if __name__ == "__main__": N = int(input()) ans = [i for i in sorted([int..
https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 해설 : 알파벳 소문자로 이루어진 단어 N개가 주어질 때 이를 조건에 맞게 정렬하는 문제이다. 조건 1. 길이가 짧은 것이 앞으로 조건 2., 길이가 같다면 사전순으로 가까운 것이 앞으로 풀이 : 쉬운 정렬 문제이다. 주어진 알파벳들을 list에 넣고 sort 함수를 사용하면 된다. 풀이를 보면 정렬을 2회 진행하였는데 이 때는 Python의 이해도가 조금 낮았던 것 같다. 지금 푼다면..
https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 해설 : 0 또는 양의 정수들이 담긴 배열이 주어졌을 때 각 원소들을 붙여 만들 수 있는 가장 큰 수를 출력하면 된다. 풀이 : 모든 원소들을 이어 붙이기 위해 str 형태로 바꿔준 후 내림차순 정렬하고 앞에서부터 이어붙이면 된다. 여기서 핵심은 내림차순 정렬할 때 단순히 정렬하게 된다면 문제가 생..