본문 바로가기

Python265

[백준 12100번] 2048(Easy) - 구현 / 시뮬레이션 / 완전탐색 / 백트래킹 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net # 4x4 크기 보드 # 한번 이동할 때 보드 위에 있는 모든 블록이 상-하-좌-우 중 하나로 이동 # 같은 값을 갖는 두 블록이 충돌하면 합쳐짐 # 한번의 이동에서 합쳐진 블록은 다시 합쳐질 수 X import copy n = int(input()) zone = [list(map(int,input().split())) for _ in range(n)] max_value = -1 # 왼쪽으로 이동시키는 함수 def moveLeft():.. 2023. 10. 7.
[백준 1049번] 기타줄 1049번: 기타줄 첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주 www.acmicpc.net # 끊어진 기타줄 개수 N # 기타줄 브랜드 M # 각 브랜드마다 판매중인 6개의 패키지의 가격, 낱개 가격 # 적어도 N개를 사기 위해 필요한 돈의 "최솟값" n,m = map(int,input().split()) prices = [list(map(int,input().split())) for _ in range(m)] min_package = min([x[0] for x in prices]) min_item = min([x[1] for x in price.. 2023. 10. 7.
[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.
[백준 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.