본문 바로가기

코딩 테스트/Python_백준88

[백준/Python] 18870번 좌표 압축 문제 ■ 18870번 좌표 압축 문제 ■ 코드 풀이 여러분, 좌표 압축에 대한 개념을 알고 있으신가요? 저는 이 개념을 몰라서 문제를 한참 읽었습니다. 역시 알고리즘이란 배워도 배워도 끝이 없네요. 좌표 압축이란 좌표를 정렬하고 이를 순서로 표현한 것입니다. 예를 들어 볼까요? 먼저 1, 50, 1000, 50,000, 10,000,000의 5가지 숫자가 있다고 가정하겠습니다. 이 숫자를 그냥 심플하게 1, 2, 3, 4, 5로 표현한 것이 좌표 압축입니다. 이런 맵핑은 특히 입력받는 숫자의 범위가 아주 큰 경우에 유용합니다. 예를 들어 입력값이 -10억부터 10억까지이고 이 사이에서 어떤 연산을 해야 할 경우, 20억 개의 숫자를 모두 업데이트하는 것은 비효율적입니다. 그저 입력받은 숫자들을 정렬하고 순위로.. 2023. 5. 22.
[백준/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.