파이썬

📦 Data Structure

[자료구조] 큐(Queue) (python 파이썬)

큐(Queue) 큐는 가장 먼저 넣은 데이터가 가장 먼저 나오는 자료구조다. 스택이랑 비교하면 스택은 입구가 1개인 통 같은 구조이고, 큐는 터널 같은 구조다. 가장 먼저 들어온 차가 가장 먼저 나간다. 이런 구조를 First In First Out(FIFO, 일명 피포)라고 한다. 큐에는 두개의 포인터가 존재한다. 하나는 rear, 다른 하나는 front다. rear에서는 Enqueue, front에서는 dequeue연산이 수행된다. 큐의 연산 - enqueue(): 큐가 가득찼는지 확인하고 가득차있지 않으면 rear 위치에 데이터 삽입. - dequeue(): 큐가 비어있는지 확인하고 비어있지 않으면 front위치에 있는 데이터 return하고 remove. - peek(): 큐의 front 위치에 ..

📦 Data Structure

[자료구조] 스택(Stack) (python 파이썬)

스택(Stack) 스택은 가장 나중에 넣은(push) 데이터를 가장 먼저 꺼내는(pop) 자료구조다. 이런 구조를 Last In First Out(후입선출, LIFO) 또는 First In Last Out(선입후출, FILO)라고 한다. 흔히 택배 트럭에 있는 택배 상자들을 생각하면 된다. 가장 나중에 넣은 택배 상자부터 먼저 꺼내니까 스택의 연산 - push(): 스택이 가득 찼는지(isFull) 확인하고 가득 차있지 않으면 top 다음 위치에 데이터 삽입. - pop(): 스택이 비어있는지(isEmpty) 확인하고 비어있지 않으면 top위치에 있는 데이터 return 하고 삭제. - peek():스택의 top에 있는 데이터 return. - isFull(): 스택이 가득 찼는지 확인. 스택의 사이즈와..

🧩 Problem Solving/[백준]

[백준] 2839 설탕 배달 (feat.DP) (python 파이썬)

2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 설탕 N킬로그램을 주고 이걸 5킬로그램, 3킬로그램 봉지로 가장 적은 개수로 나누는 문제. 처음에는 수학으로 해결하려다가 "동전" 문제가 생각나서 DP로 해결했다. 아이디어 n킬로그램은 (n - 3) + 3 또는 (n - 5) + 5로 생각할 수 있다. 따라서 n킬로그램의 봉지 개수는 n - 3과 n - 5 킬로그램 봉지 개수 중 작은 거(min) + 1이 된다. 이 아이디어로 해결하려면 n - 3과 n - 5의 개수 정보를 저장해 뒀다가 재사용이 필요하다. 3 ~ n킬로..

🧩 Problem Solving/[백준]

[백준] 2447 별 찍기 - 10 (python 파이썬)

2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 거의 1년 전에 풀었던 문제. 진짜 아무런 계기 없이 그냥 뜬금없이 다시 생각나서 풀어봤다. 다행히 해결 이 문제는 재귀의 특징을 잘 이해하면 해결할 수 있는 문제다. 괜찮은 문제인 거 같다. 꼭 풀고 나서 자신의 것으로 체화하자. 아이디어 사고를 풀어가는 거라 좀 추상적일 수 있다. 일단 첫 번째 N = 3인 경우는 다음과 같다. *** * * *** 그리고 N = 9인 경우는 다음과 같다. 여기서 패턴을 나눠보면 크게 A파트(빨간색..

📜 Language/[python]

[파이썬] 여러 파일 이름 한번에 변경하는 프로그램 만들기(feat. os.rename)

계기 YOLO학습을 위해 이미지 라벨링을 하니, 이미지 수백 장의 이름을 변경해야 되는 일이 생겼다. 하나하나 변경하면 되지만 너무 귀찮고 오래 걸린다. 파이썬으로 만들 수 있을 거 같아, 간단하게 코드를 짜봤다. 프로그램이라 하기엔 코드가 너무 짧긴 하지만, 뭐 내가 필요에 의해 만든 거니 유의미하지 않을까?라고 생각한다. 코드 import os #기존 사진 백업 필수!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #기존에 있는 사진들을 삭제됨 #기존 파일 경로 folder_path = 'C:\\Users' #새로 저장 경로 (정확히 맞아야 함) dst_path = 'C:\\Users' #폴더안에있는 파일들 이름 리스트로 가져오기 file_names = os.listdir(folder_pat..

🧩 Problem Solving/[백준]

[백준] 28018 시간이 겹칠까?(feat.imos법) (python 파이썬)

https://www.acmicpc.net/problem/28018 28018번: 시간이 겹칠까? 댓글을 달아준 학생 수 $N$이 주어진다. $(1\leq N\leq 100\,000)$ 다음 $N$개 줄에는 각 학생의 좌석 배정 시각 $S$와 종료 시각 $E$가 주어진다. $(1\leq S\leq E\leq 1\,000\,000)$ 다음 줄에는 특정한 시각의 개수 www.acmicpc.net 대회에서 해결 못하고 끝나고 해결한 문제. 처음 듣는 알고리즘이어서 신기했다.(누적합 알고리즘 같다) 아직도 모르는게 많은거 같다, 배움에는 끝이 없는 거 같다. 아이디어 문제를 보고 시간제한을 고려하지않으면 정말 쉬운 난이도다. 하지만 입력값이 크기 때문에 시간 고민을 해봐야 된다. 이 아이디어를 쉽게 말하면, 들..

🧩 Problem Solving/[SW Expert Academy]

[SWEA D3] 1206 View (python 파이썬)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 처음 풀어본 SW Expert Academy. 아직 한 문제만 풀어봐서 잘 모르겠다. 몇 문제 풀어보면 느낌을 알 거 같다. 문제 페이지에 input.txt를 보고 파일 입출력을 해야 하나 했는데, 그냥 평소 문제 풀듯 풀면 된다. 근데 궁금한 게 input이 전부 주어지면, 하드코딩으로 제출해도 정답인가? 모르겠다. 그리고 이 문제만 그런지 모르겠는데, 출력이 특이했다. #1 1231, #2 5343, #3 1233... 이런 식으로 제출 환경도 처음 봐서 살짝 뇌가 정지했는데, 그냥 원래대로 하면 된다. 아이디어 코드 길이를 보면 알겠지만 매우 간단하다. 오히..

🧩 Problem Solving/[백준]

[백준] 28303 자석 (+ 연속 구간의 최대 합) (python 파이썬)

https://www.acmicpc.net/problem/28303 28303번: 자석 예제 1의 경우 N극이 3번 칸에 놓이고 S극이 5번 칸에 놓이도록 자석을 설치할 때 1번 현상으로 $a_3=22$의 에너지가 충전되며, 2번 현상으로 $a_5=4$의 에너지가 소모되고, 3번 현상으로 $(5-3)\times 2=4$ www.acmicpc.net N의 최댓값이 500,000이다. 시간제한은 2초나 되지만, N**2 같은 건 절대 안 된다. 이런 걸 고려해서 처음에는 DP, 그리디, 누적 합, 투포인터 등등 생각했었는데 1시간 정도 아이디어도 안 나왔다. 결국 알고리즘 분류를 확인했다. 누적 합 인걸 확인하고 최대한 누적 합 알고리즘을 적용하려고 했다. 코드 작성 중간에 내가 원하는 로직을 구현하기 위해..

제봉아
'파이썬' 태그의 글 목록 (3 Page)