알고리즘 문제풀이(Python)

10814번, 10989번

coucou3 2020. 10. 22. 00:41
반응형

1. 10814

 

# 10814.py

def main2():
    n = int(input())
    data = []
    for x in range(0, n):
        s = input().split(' ')
        data.append((int(s[0]), s[1]))

    dataSorted = sorted(data, key = lambda x : x[0])

    for d in dataSorted:
        print ("{0} {1}".format(d[0], d[1]))
        
main2()

Python 내장 정렬함수 sorted에 두 번째 인자 key로 lambda 함수를 넣어준다.

파라미터의 첫 번째 요소를 기준으로 정렬한다.

sorted는 비교값이 같을 경우 리스트의 기존 순서를 보장한다.

 

 

2. 10989

 

메모리와 시간제한을 고려해야 하는 문제다.

(백준 컴파일러 중 Pypy는 Python3보다 속도가 약간 빠르지만 메모리는 더 많이 사용한다. 이 문제에서는 메모리 제한이 8MB밖에 되지 않기 때문에 Python3를 사용한다.)

 

# 10989.py

import sys

def main():
    n = int(sys.stdin.readline())
    arr = [0] * 10001

    for x in range(n):
        a = int(sys.stdin.readline())
        arr[a] += 1

    for x in range(10001):
        if arr[x] > 0:
            for i in range(0, arr[x]):
                print (x)

input()보단 sys.stdin.readline()이 성능이 더 좋다.

 

 

반응형

'알고리즘 문제풀이(Python)' 카테고리의 다른 글

마라톤 - 해시  (0) 2021.02.09
최소값 최대값 찾기  (0) 2020.10.07
1003번: 피보나치 함수 - 동적계획법  (0) 2020.07.19