본문 바로가기

전체 글165

[백준/Python] 10814번 나이순 정렬 문제 ■ 10814번 나이순 정렬 문제 ■ 코드 풀이 list의 sort 메서드에서 key 옵션을 활용하면 무난히 풀 수 있는 문제입니다. 먼저 가입 순서에 대한 정보를 idx 변수에 넣어 줍니다. 이때, 사용자 편의성을 위해 idx는 1부터 시작합니다. 그리고 나이와 이름을 append로 받아서 이를 list에 idx와 함께 추가해 줍니다. 여기까지 했다면 sort 메서드에서 key 옵션을 활용합니다. key 옵션에 대해 잘 모르시는 분들은 아래 링크 확인해 보시면 도움이 될 것 같습니다. import sys N = int(input()) idx = 0 member_list = [] for i in range(N): idx += 1 age,name = map(str, sys.stdin.readline().s.. 2023. 5. 17.
[백준/Python] 1181번 단어 정렬 문제 ■ 1181번 단어 정렬 문제 ■ 코드 풀이 이 문제를 input으로도 풀어보고 sys.stdin으로도 풀어봤습니다. 확실히 반복 입력이 많은 문제에서는 sys.stdin이 압도적으로 빠르네요. 소요 시간이 거의 1/10 수준이었습니다. 저는 이 문제를 풀 때 문제에서 길이순으로 정렬한 다음 단어순으로 정렬하라고 제시해서 sort()와 sort(key=len)의 순서를 바꿔서 풀었습니다. 계속 에러가 나와서 이게 뭐지 했네요. 참고로 sort의 key 옵션에 대해 잘 모르시는 분께서는 아래 링크 글 확인하시면 도움이 될 것 같습니다. import sys N = int(sys.stdin.readline()) text_list = [] for i in range(N): text_list.append(sys... 2023. 5. 16.
[백준/Python] 11651번 좌표 정렬하기 2 문제 ■ 11651번 좌표 정렬하기 2 문제 ■ 코드 풀이 리스트의 sort 메서드에서 key 옵션을 활용하면 쉽게 풀 수 있는 문제입니다. 아마 문제를 단계별로 풀고 계신 분들께서는 한번 접해본 문제였을 텐데요. 비슷한 문제를 아래 링크로 첨부드리니, 공부 차원에서 보시는 것도 좋을 듯합니다. coord_list = [] N = int(input()) for i in range(N): x,y = map(int, input().split()) coord_list.append((x,y)) coord_list.sort(key = lambda x : (x[1], x[0])) for coord in coord_list: x, y = coord print(x,y) [백준/Python] 11650번 좌표 정렬하기 [백준.. 2023. 5. 15.
[백준/Python] 11650번 좌표 정렬하기 ■ 11650번 좌표 정렬하기 ■ 코드 풀이 list에는 sort 메서드가 있습니다. 그리고 sort 메서드에서는 key를 활용하여 정렬에 다양한 옵션을 줄 수 있습니다. 이 기능을 이용하면 쉽게 주어진 문제를 풀 수 있습니다. coord_list = [] N = int(input()) for i in range(N): x,y = map(int, input().split()) coord_list.append((x,y)) coord_list.sort(key = lambda x : (x[0], x[1])) for coord in coord_list: x, y = coord print(x,y) sort 메서드의 key 옵션에 대해 제가 참고한 글의 링크를 아래 첨부합니다. 관심 있으신 분은 한번 들어가서 확인.. 2023. 5. 14.
[백준/Python] 1427번 소트인사이드 문제 ■ 1427번 소트인사이드 문제 ■ 코드 풀이 숫자를 처음에 string으로 그대로 입력받습니다. 이후 문자열의 각 원소를 int 처리하여 list로 만들어줍니다. 그리고 sort 메서드를 사용하여 list를 내림차순 정렬하고 다시 출력을 위해 string으로 바꿔줍니다. 최종 출력은 공백 없이 각 원소를 join 하여 출력해 줍니다. num_str = input() num_list = list(map(int, num_str)) num_list.sort(reverse=True) num_list = list(map(str, num_list)) print(''.join(num_list)) 2023. 5. 13.
[백준/Python] 10989번 수 정렬하기 3 문제 ■ 10989번 수 정렬하기 3 문제 ■ 코드 풀이 백준 문제를 풀면서 처음 메모리 초과를 경험했습니다. 아무래도 코딩을 독학하고 취미로 하다 보니, 메모리에 대한 고려를 많이 못했던 것 같습니다. 그러다 보니 코드를 어떻게 작성해야 하는지 몰라서 다른 분께서 푸신 것을 참고했습니다. 원본 코드 링크는 아래 글 참고해 주세요. https://pacific-ocean.tistory.com/67 백준 알고리즘 10989번(python 파이썬) 문제 링크: https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자.. 2023. 5. 12.