본문 바로가기

Python257

[백준 1181번] 단어 정렬 n = int(input()) set = set() for i in range(n): set.add(input()) sort_array = sorted(set) sort_array = sorted(sort_array,key= lambda x:len(x)) for i in sort_array: print(i) 이 문제는 중복된 단어를 하나만 남기기 위해서 집합 자료형(Set)을 사용하였고, 문자열의 길이를 기준으로 정렬하기 위해서 key와 람다 함수(lambda)를 사용하였다 :) 2023. 2. 21.
[백준 10989번] 수 정렬하기 3 import sys input = sys.stdin.readline n = int(input()) count_array = [0]*(10001) for i in range(n): data = int(input()) count_array[data] += 1 for i in range(len(count_array)): for j in range(count_array[i]): sys.stdout.write(str(i)+'\n') 이번 문제는 앞서 풀었던 수 정렬하기 시리즈 1,2 와는 다르게 공간 복잡도(메모리 제한)을 고려해야 하는 문제이다. 첫번째로 pypy3를 기준으로 input()이 아닌 sys.stdin.readline() 을 사용하였고, 두번째로 print()가 아닌 sys.stdout.write(.. 2023. 2. 21.
[백준 2751번] 수 정렬하기 2 n = int(input()) array = [0]*n for i in range(n): array[i] = int(input()) array.sort() for i in array: print(i) 2023. 2. 21.
[백준 2750번] 수 정렬하기 n = int(input()) array = [0]*n for i in range(n): array[i] = int(input()) array.sort() for i in array: print(i) 2023. 2. 21.
[Sorting] 정렬 알고리즘 정리 + 선택/삽입/퀵/계수 정렬 정렬이란 ? 정렬(Sorting)이란 데이터를 특정한 기준에 따라서 순서대로 나열하는 것을 말한다. 정렬 알고리즘으로 데이터를 정렬하면 다음 장에서 배울 이진 탐색(Binary Search)이 가능해진다. (정렬 알고리즘은 이진 탐색의 전처리 과정) ⇒ 선택 정렬, 삽입 정렬, 퀵 정렬, 계수 정렬만 다룰 예정 선택 정렬(Selection Sort) 알고리즘 array = [7,5,9,0,3,1,6,2,4,8] for i in range(len(array)): min_index = i # 가장 작은 원소의 인덱스 for j in range(i+1,len(array)): if array[min_index] > array[j]: min_index=j # 스와프(Swap)란 특정한 리스트가 주어졌을 때 두 변.. 2023. 2. 21.
[백준 1920번] 수 찾기 import sys input = sys.stdin.readline n = int(input()) # List의 in은 평균 시간복잡도가 O(N)이고, Set의 in은 평균 시간복잡도가 O(1)이다 # (Set은 해쉬 테이블을 사용하기 때문) set_n = set(map(int,input().split())) m = int(input()) array_m = list(map(int,input().split())) for i in array_m: if i in set_n: print(1) else: print(0) 이번 문제는 이진 탐색을 사용하지 않고 풀이하려고 했었는데, n개의 데이터가 들어있는 리스트(List)로 저장하고 in 연산자를 사용하니 시간초과가 발생했다. 따라서 이를 해결하기 위해 in 연산.. 2023. 2. 21.