[백준] 정렬 2
백준 11650 좌표 정렬하기
문제
풀이
N = int(input())
arr = [0] * N
for r in range(N):
i, j = map(int, input().split())
arr[r] = [i, j]
arr = sorted(arr)
for k in range(len(arr)):
print(arr[k][0], arr[k][1])
sorted란 함수 자체가 자동으로 정렬해주기 때문에, 식을 더 만들지 않아도 출력이 잘됬다.
갑자기 궁금해졌다.
print 함수와 sys 를 이용한 함수를 쓸때 차이가 어느정도가 날까?
import sys
N = int(sys.stdin.readline())
arr = [0] * N
for r in range(N):
i, j = map(int, sys.stdin.readline().split())
arr[r] = [i, j]
arr = sorted(arr)
for k in arr:
print(k[0], k[1])
바꾼게 sys 말고도 for문을 바꾸긴 했지만 시간차이가 꽤 많이 나더라
중간에 한번은 잘못 입력해서 런타임 에러가 뜸 ㅋㅋㅋㅋ
입력, 프린트시에 메모리에 관한 차이도 있을거라 생각했는데, 그건 아닌가보다
아무튼 시간적인 차이가 많이 나는구나
백준 11651 좌표 정렬하기 2
문제
풀이
import sys
N = int(input())
arr = [0] * N
for r in range(N):
i, j = list(map(int, sys.stdin.readline().split()))
arr[r] = [j, i]
for k in sorted(arr):
k[0], k[1] = k[1], k[0]
print(k[0], k[1])
import sys
N = int(input())
arr = [0] * N
for r in range(N):
i, j = list(map(int, sys.stdin.readline().split()))
arr[r] = [j, i]
for k in sorted(arr):
print(k[1], k[0])
바보같이 일을 두번했다 ㅋㅋㅋㅋㅋ
그래서 다시 바꿔서 진행했다.
arr[r] = [j, i]
내가 한 방식으로 넣어주어도 되지만,
lambda 함수를 이용해서 넣어주어도 된다.
N = int(input())
arr = [0] * N
for r in range(N):
i, j = list(map(int, input().split()))
arr[r] = [j, i]
arr.sort(key=lambda x: (x[0], x[1]))
print(arr)
>>[[-3, 3], [-2, 2], [-1, 1]]
백준 1181 단어 정렬
문제
풀이
import sys
N = int(sys.stdin.readline())
arr = [0] * N
num = []
for r in range(N):
word = sys.stdin.readline()
arr[r] = word
arr = set(arr)
for i in arr:
num.append((len(i), i))
num.sort()
for j in num:
print(j[1].strip("\n"))
이 문제에서 유독 실수가 많았음.
중간에 파이썬으로 안바꾸고 제출도 했습니다 😁
틀렷던 코드들을 보면
for i in range(N):
word = sys.stdin.readline()
arr[r] = word
arr = set(arr)
완전 실수 투성이여
for i in arr:
num.append((len(i), i))
num.sort
이런식으로 for문 밖에서 정렬하고, 중복검사를 해야하는데
안쪽에서 해버려서 틀린경우, 오타(append를 appned 와 appnd)로
코드에디터에서 실행해보고 충분히 알아 차릴수 있는 실수 였는데
확인조차 안하고 제출해버렷다.
반성하자 실수 할 수도 있지 그런데, 확인도 안해보고 실수 하는건
그냥 내가 귀찮아서 안했다는거 말고는 없다.
백준 10814 나이순 정렬
문제
풀이
import sys
N = int(input())
arr = [0] * N
for r in range(len(arr)):
i, j = map(str, sys.stdin.readline().split())
arr[r] = [i, j]
arr.sort(key=lambda x: int(x[0]))
for age, name in arr:
print(age, name)
정렬 파트에 있는 문제들은 다 비슷비슷한 문제여서 푸는데 좀 지루햇다..
다 풀어보고 싶어서 풀긴 했지만, 지루했다
아니지 2문제 못풀었다.
최빈값 구하는 문제랑, 메모리 줄이는 문제( 수 정렬하기 3)
최반값이라는 개념자체를 몰라서 찾아봤지만, 여전히 어떤식으로 구해야할지
감이 잘 안잡힌다.
Author And Source
이 문제에 관하여([백준] 정렬 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ddalkigum/백준-정렬-2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)