반응형
11650 좌표 정렬하기
그냥 정렬 문제랑 비슷하다고 생각했는데 두번째 항목의 정렬법을 모름
test_case = int(input())
array = []
for _ in range(test_case):
data = list(map(int, input().split(' ')))
array.append((data[0], data[1]))
array = sorted(array)
for i in array:
print(i[0], i[1])
그냥 sorted()에 key값만 빼주면 된다니 ... 그럼 첫번째 항목 오름차순, 두번째 항목 내림차순은 어떻게하지..?
얻은 것
- sorted() 함수는 기본적으로 오름차순으로 정렬
- 아래 링크를 따라가면 같이 사용할 수 있는 정렬 관련 함수도 있음. 유용함
https://docs.python.org/ko/3/howto/sorting.html
10989 수 정렬하기 3
n = int(input())
array = []
for _ in range(n):
array.append(int(input()))
for i in array:
print(i)
# 배열의 인덱스를 이용한 다른 풀이
import sys
n = int(sys.stdin.readline())
array = [0] * 10001 # 들어올 수 있는 수 범위가 정해져있기 때문에 배열의 범위 제한
for i in range(n):
data = int(sys.stdin.readline())
array[data] += 1
for i in range(10001):
if array[i] != 0:
for j in range(array[i]):
print(i)
얻은 것
- 많은 데이터를 받을 때는 input() 대신 sys.stdin.readline() 함수를 이용
- 범위가 정해져있을 경우 인덱스를 이용해서 정렬할 수 있음
2747 피노나치 수
# 내 풀이
def fibo(n):
if n == 0:
return 0
if n == 1:
return 1
return fibo(n-1) + fibo(n-2)
print(fibo(int(input())))
# 다른 풀이
n = int(input())
a = 0
b = 1
while n > 0:
a, b = b, a+b
n -= 1
print(a)
얻은 것
- 재귀 함수를 이용하는 식이라고해서 무조건 이용하는게 아니라 비슷하게 동작하는 함수 만들어야 효율 좋음
반응형
'컴퓨터 > 백준 문제풀이' 카테고리의 다른 글
1302 베스트셀러, 1668 트로피진열, 1236 성 지키기 (0) | 2020.09.23 |
---|---|
11004 k번째 수, 1543 문서 검색, 1568 새 (0) | 2020.09.19 |
1074번 Z, 7490 0 만들기, 2751 수 정렬하기 2 (0) | 2020.09.17 |
2750 수 정렬하기, 1427 소트인사이드, 10814 나이순정렬 (1) | 2020.09.12 |
5397. 키로거, 10930 SHA-256, 1920 수 찾기, 4195 친구 네트워크 (0) | 2020.09.11 |
댓글