본문 바로가기

프로그래밍31

[자료구조] # 0. 언제 스택을 쓰고, 큐를 써야할까? 자료구조의 가장 기초가 되는 두 유형이다.Stack : Last In First Out 형태의 데이터 처리 방식으로 입구와 출구가 같다고 보면 된다.Queue : First In First Out 형태의 데이터 처리 방식으로 입구와 출구가 다르며, 원형 통자의 "채널" 이라고 보면 된다.정의는 누구나 알지만, 정작 그래서 언제 스택을? 언제 큐를? 물어보면 막상 대답하려니 어려울 수도 있다. 스택의 대표적인 예시는 아마 "뒤로가기" 이지 않을까?여러분들이 이 글을 보기 위해서는 일단 브라우저를 키고, 스택 또는 그 외 유관한 키워드를 검색하고, 이 게시글을 눌러서 왔을 것이다. 그럼 뒤로가기를 하면? 검색 결과 화면이 뜰것이고, 다시 또 뒤로가기를 하면 검색창이 있는 메인 브라우저 화면으로 간다. 또 뭐.. 2024. 7. 3.
[Python] 백준 16236번 아기상어 / 코드트리 전투 로봇 나머진 다 쉬웠는데, 가장 가까운 경로에 있는 애를 어떻게 먹으러갈지 구현하기 힘들었던 문제. 우선순위가 1. 자기보다 크기가 작은 물고기가 2마리 이상인 경우 가장 가까이에 있는 것 2. 거리가 같은 경우에는 행과 열이 작을 수록. 이건데 1번을 건너뛰고 자꾸 2번 우선순위로 가가지고 힘들었음. 다른 골3에 비해 얘가 좀 더 어려웠던 느낌 import sys from collections import deque sys.stdin = open('111.txt') input = sys.stdin.readline N = int(input().rstrip()) graph = [] for col in range(N): graph.append(list(map(int,input().rstrip().split())).. 2023. 4. 1.
[Python] 백준 20058번 마법사 상어와 파이어스톰 회전하는 방식에서 상당히 애를 먹음. 이 부분만 잘 처리하면 나머진 기본적인 플러드필이다. # N은 격자 사이즈, Q는 레벨 횟수 import copy from collections import deque N,Q = map(int,input().split()) _N = 2**N # 제곱 수라했으니까. ice = [] for col in range(_N): ice.append(list(map(int,input().split()))) level = list(map(int,input().split())) dx,dy = [1,0,-1,0],[0,1,0,-1] ### 위에 입력 이상 없음 ### for idx in level: k = 2**idx # 레벨 단위로 해야하니까 for col in range(0,_N,.. 2023. 4. 1.
[Python] 코드트리 : 바이러스 실험 / 백준 16235번 나무 재테크 하라는 대로만 하면 되는 문제다. 시간이 빡빡해보였는데 한번에 통과해서 기분 좋다. 이 문제에서는 주의해야할 점은..... 죽은 나무를 언제 처리할 것인지 생각하는게 관건이다. clear와 extend 함수 스킬을 알고 있어서 다행이었다. # N은 격자 사이즈, M은 바이러스 개수, K는 사이클 횟수 N,M,K = map(int,input().split()) # 초기 배양액 init_eat = [[5]*N for _ in range(N)] # 사이클 1회 마치고 추가될 양분 add_eat = [] for col in range(N): add_eat.append(list(map(int,input().split()))) # 바이러스 정보들 virus = [[[] for _ in range(N)] for _ .. 2023. 4. 1.
[Python] 백준 15686번 치킨 배달 풀이 https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 백트랙킹을 사용하는 문제입니다. import sys sys.setrecursionlimit(10**8) sys.stdin = open('111.txt') N,M = map(int,input().split()) # N은 격자 사이즈, M은 치킨집 개수 graph = [] house = [] chicken = [] for col in range(N): graph.append(li.. 2023. 3. 19.
[Python] # 0. 파이썬 기초 문법 Review (1) SCSA 교육 입과 전, Python 기초 문법을 예습해가는 시간을 갖고자 합니다. 먼저 산술연산자 4개부터 봅시다. 당연한 사칙연산들인데요. C/C++에선 + , - , / , %이 있습니다. 파이썬에서는 특이한게 +,-,/,//,%,divmod(a,b) 로 크게 6가지가 있어요. + 는 더하기 , - 빼기 , / 는 소수점자리까지 출력하는 나누기 , // 는 몫만 출력 (C/C++에선 주석처리였죠?) , % 는 나머지 출력 , divmod(a,b)는 a//b , a%b를 동시에 출력하는 문법입니다. 다음은 문자열입니다. C/C++에선 문자는 작은따옴표로 , 문자열은 큰따옴표로 구분했는데 파이썬은 상관없습니다. 작은따옴표로 하든 큰따옴표로 하든 알아서 다 인식이 됩니다. a = 'abc' b = 'de.. 2023. 1. 3.