[Python] 백준 정렬 (sorting) 기본 문제, 답, 풀이 팁(tip) 정리

2021. 1. 27. 20:28·Coding Test(Algorithms)
목차
  1. 1. 빈 리스트 생성 및 추가
  2. 2. sorted/sort 차이
  3. 3. 원하는 기준 여러개로 sort할 때
  4. 4. 원하는 기준들이 오름/내림차순이 다를 때
  5. 5. string 문자열로 sorting할 때 
  6. 6. 알고리즘은 맞는데 시간 초과가 날 때
  7. 7. 알고리즘은 맞는데 메모리 초과가 날 때
  8. 8. dictionary로 저장하고 정렬할 때
  9. 9. dictionary에 해당 key가 있는지 탐색할 때
반응형
2751, 11650, 11651, 10814, 10825, 10989,11652, 11004

 

각 문제에 대해 정답 처리된 코드를 저의 github에 올려두었습니다.

참고하세요!

 

github.com/Hong-been/Algoritms-and-Data-Structues

 

Hong-been/Algoritms-and-Data-Structues

Contribute to Hong-been/Algoritms-and-Data-Structues development by creating an account on GitHub.

github.com


~ 목차 ~

1. 빈 리스트 생성 및 추가

2. sorted/sort 차이

3. 원하는 기준 여러 개로 sort할 때

4. 원하는 기준들이 오름/내림차순이 다를 때

5. string 문자열로 sorting할 때 

6. 알고리즘은 맞는데 시간 초과가 날 때

7. 알고리즘은 맞는데 메모리 초과가 날 때 
8. dictionary로 저장하고 정렬할 때

9. dictionary에 해당 key가 있는지 탐색할 때


1. 빈 리스트 생성 및 추가

a=[]

a.append(b)

 

2. sorted/sort 차이

a.sort(): return값 없음, 오름차순, a 자체가 바뀜

sorted(a) : return 값 있음, 오름차순, a는 그대로, 새로운 list를 할당받아야 함

 

3. 원하는 기준 여러개로 sort할 때

a.sort(key=lamdba x: (x[0], x[1]) ) : x를 input으로, x[0]과 x[1]를 return으로 만든다. 이때 x는 a이다.

즉, x[0]이 우선 key value, x[1]가 두번째 key value가 된다. 좌표를 정렬하는 문제에서 사용한다.

* 유의할 점!! (x[0], x[1]) 괄호 빼먹지 말자!

 

4. 원하는 기준들이 오름/내림차순이 다를 때

a.sort(key=lamdba x: (x[0], -x[1]) ) : 내림차순인 key value에다가 마이너스를 붙여 음수로 만들어 준다. 

 

5. string 문자열로 sorting할 때 

str에서 10, 50, 100을 정렬하면 10,100,50 으로 정렬된다.

숫자를 정렬하고 싶을 때엔 꼭 a.sort(key=lamdba x: int(x[0]) ) int형으로 형변환한다.

 

6. 알고리즘은 맞는데 시간 초과가 날 때

1. python3를 pypy로 바꿔서 돌려본다.

2. 입력받을 때, for문 대신 list(map()) 을 사용하여 한번에 저장한다.

 

7. 알고리즘은 맞는데 메모리 초과가 날 때

import sys 선언하고

1. input()대신 sys.stdin.readline() : 띄어쓰기와 \n까지 포함하므로 split()을 이용하는 것이 더 좋다. 여러 줄을 입력받으려면 sys.stdin을 이용한다.

2. print() 대신 sys.stdout.write(): write는 반드시 str로 형변환해주어야 출력할 수 있다. 띄어쓰기, 줄바꿈 없이 이어서 출력하므로 출력 형태에 유의해서 "\n"을 추가해준다.

 

8. dictionary로 저장하고 정렬할 때

dict은 sort가 안된다. 그래서 tuple형태로 바꿔주는 items method를 사용한다.

# value 내림차순, key 오름차순

num=sorted(num.items(), key=lambda x:( -x[1], x[0] ) ) 

# The items() method returns a view object that displays a list of dictionary's (key, value) tuple pairs.

 

9. dictionary에 해당 key가 있는지 탐색할 때

"if key in dictionary" 를 사용한다. (dict is impletmented as hash table, O(1))

 

 

 

소통하고 싶은 내용이 있으면 언제든 댓글주세요.

반응형
저작자표시 (새창열림)

'Coding Test(Algorithms)' 카테고리의 다른 글

[JAVA] 입출력 예제 - 백준 1000  (0) 2021.06.15
[Python] 백준 11576 - Base Conversion, 반례,오답 피드백  (0) 2021.02.02
[Python] 백준 문자열(Strings), Linked-Lists 문제 풀이 팁(tip) 정리  (0) 2021.01.29
[Python] 백준 Stack/Queue/Deck 문제 풀이 팁(tip) 정리  (0) 2021.01.28
Greedy1. 프로그래머스 체육복 (파이썬 풀이)  (0) 2020.09.23
  1. 1. 빈 리스트 생성 및 추가
  2. 2. sorted/sort 차이
  3. 3. 원하는 기준 여러개로 sort할 때
  4. 4. 원하는 기준들이 오름/내림차순이 다를 때
  5. 5. string 문자열로 sorting할 때 
  6. 6. 알고리즘은 맞는데 시간 초과가 날 때
  7. 7. 알고리즘은 맞는데 메모리 초과가 날 때
  8. 8. dictionary로 저장하고 정렬할 때
  9. 9. dictionary에 해당 key가 있는지 탐색할 때
'Coding Test(Algorithms)' 카테고리의 다른 글
  • [Python] 백준 11576 - Base Conversion, 반례,오답 피드백
  • [Python] 백준 문자열(Strings), Linked-Lists 문제 풀이 팁(tip) 정리
  • [Python] 백준 Stack/Queue/Deck 문제 풀이 팁(tip) 정리
  • Greedy1. 프로그래머스 체육복 (파이썬 풀이)
RED BEAN
RED BEAN
웹 프론트엔드 개발블로그입니다. 대화하고싶으시다면 댓글 혹은 ghdqlsdl9633@gmail.com 이메일주시면 감사히 답변하겠습니다. [GitHub - https://github.com/Hong-been]
반응형
RED BEAN
REDBEAN
RED BEAN
전체
오늘
어제
  • 분류 전체보기 (102)
    • 계속하는개발 (6)
    • Development (45)
    • Coding Test(Algorithms) (47)
    • Info. (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 관리자

공지사항

인기 글

태그

  • 티스토리챌린지
  • 국비학원
  • 개발자
  • pymongo
  • 모던자바스크립트딥다이브
  • nestjs
  • 온라인강의
  • 글또
  • 자바입출력
  • node
  • 오블완
  • 노마드코더
  • 코테
  • MongoDB
  • 회고
  • 백준
  • React
  • Flask
  • html
  • 이직
  • css
  • 스파르타코딩클럽
  • 코딩테스트
  • JS
  • 프론트엔드
  • 자바
  • 자바스크립트
  • 플라스크웹개발
  • 코딩강의
  • 웹개발

최근 댓글

최근 글

hELLO· Designed By정상우.v4.5.2
RED BEAN
[Python] 백준 정렬 (sorting) 기본 문제, 답, 풀이 팁(tip) 정리

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.