본문 바로가기

분류 전체보기443

[Python] collections 모듈의 Counter 사용법 1) Counter 기본 사용법 이번에는 데이터의 개수를 셀 때 매우 유용한 파이썬의 collections 모듈의 Counter 클래스에 대해서 알아보겠습니다. from collections import Counter collections 모듈의 Counter 클래스는 별도 패키지 설치 없이 파이썬만 설치되어 있다면 위와 같이 임포트해서 바로 사용할 수 있습니다. >>> Counter(["hi", "hey", "hi", "hi", "hello", "hey"]) Counter({'hi': 3, 'hey': 2, 'hello': 1}) >>> Counter("hello world") Counter({'h': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 1, 'w': 1, 'r': 1, 'd': .. 2023. 10. 7.
[백준 2573번] 빙산 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net from collections import deque import copy # 각 칸의 높이는 자연수로 저장 # 빙산이 아닌 바다는 0으로 저장 # 매년 동서남북에 존재하는 바다의 개수만큼 줄어듦 # 단, 각 칸의 저장된 높이는 0에서 더 줄어들지 X dx = [-1,1,0,0] dy = [0,0,-1,1] n, m = map(int,input().split()) area = [list(map(int,input().split())) for _ in rang.. 2023. 10. 6.
[백준 2578번] 빙고 2578번: 빙고 첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로 www.acmicpc.net bingo = [list(map(int,input().split())) for _ in range(5)] numbers = [] answer = 0 for i in range(5): numbers += list(map(int,input().split())) def delete_number(n): for i in range(5): for j in range(5): if bingo[i][j] == n: bingo[i][j] = 0 return def count_row(): # 5.. 2023. 10. 6.
[백준 14888번] 연산자 끼워넣기 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱 www.acmicpc.net # 식의 계산은 우선 순위 무시하고 앞에서부터 진행 # 나눗셈은 몫만 취한다(//) # 음수를 양수로 나눌 때는 음수를 양수로 바꾼 뒤 몫을 취한뒤 음수로 바꾼다 n = int(input()) data = list(map(int,input().split())) # 0 : 덧셈 개수, 1 : 뺄셈 개수, 2 : 곱셈 개수, 3 : 나눗셈 개수 operator_count = list(map(int,input(.. 2023. 10. 6.
[Python] Hash 자료형(사전 자료형) 정리 1) Hash 자료형 정리 파이썬에서는 Dictionary 라는 자료구조를 통해 해시를 제공합니다. 그리고 Dictionary는 dict 클래스에 구현되어있습니다. 해시 자료형은 다음과 같은 상황에서 사용할 수 있습니다. 리스트를 쓸 수 없을 때 (인덱스 값을 숫자가 아닌 다른 값 문자열이나 튜플을 사용하려고 할 때) 빠른 접근 / 탐색이 필요할 때 ⭐️ 집계가 필요할 때(해시와, collections 모듈의 Counter 클래스를 사용) 2) 딕셔너리와 리스트의 시간 복잡도 차이 List에 비해 Dictionary가 매우 빠른 시간복잡도를 갖는 것을 보실 수 있습니다. 즉 , 원소를 넣거나 삭제, 탐색할 일이 많을 때에는 딕셔너리를 사용하는 것이 좋습니다. 3) 딕셔너리 사용법 3-1) 선언 # 빈딕셔.. 2023. 10. 5.
[Python] deque의 정의, 함수, 활용 정리 1) Deque 정의 Deque는 "double-ended que"의 약자로 스택과 큐를 일반화 한 것이다. List의 경우 고정 길이 연산에 특화되어 있으며, pop(0)과 insert(0, v) 연산에 대해 O(n)의 메모리 비용이 필요한 반면 Deque의 경우 추가(append)와 꺼내기(pop) 연산을 O(1)의 속도로 지원한다. 2) deque 함수들 3) deque 생성 from collections import deque #deque 선언 queue = deque(['this', 'is', 'deque']) print(queue) # deque(['this', 'is', 'deque']) 4) deque 활용하기 from collections import deque #deque 생성 d = .. 2023. 10. 5.