본문 바로가기

Algorithms and Languages

(50)
[Python/DailyAlgo] 81. 스택, 82. 큐, 83. 덱 문제 접근 및 공부 내용, 풀이는 모두 하단 코드에 "주석"으로 포함되어 있으니 참고해주세요.문제 유형 보기더보기스택, 덱https://dailyalgo.kr/ko/problems/81https://dailyalgo.kr/ko/problems/82https://dailyalgo.kr/ko/problems/83 간단한 문제들. 모아서 짤막하게 정리했다.81. 스택# 강사님 풀이def solution(queries): stack = [] answer = [] for query in queries: # 'pop'일 경우를 먼저 걸러내는 게 좋다 if query == 'pop': # 'pop'일 경우 # empty stack 조건 ..
[Python/백준] 9291. 스도쿠 채점 문제 접근 및 공부 내용, 풀이는 모두 하단 코드에 "주석"으로 포함되어 있으니 참고해주세요.문제 유형 보기더보기더보기이차원리스트https://www.acmicpc.net/problem/92911차 풀이 - 이미 False인 경우도 계속 검사해 비효율적import sysinput = sys.stdin.readlinen = int(input())case = 0for _ in range(n): flag = True case += 1 sudoku = [list(map(int, input().split())) for _ in range(9)] # 중첩 반복문 들어가긴 하나, 스도쿠 판 크기 81밖에 안되니 괜찮아보임 # 단순 구현력 묻는 문제인듯. for i in range(9)..
[Python/DailyAlgo] 71. 이차원 배열의 델타 탐색 1 문제 접근 및 공부 내용, 풀이는 모두 하단 코드에 "주석"으로 포함되어 있으니 참고해주세요.문제 유형 보기더보기이차원리스트https://dailyalgo.kr/ko/problems/71풀이def solution(numbers, r, c): n = len(numbers) m = len(numbers[0]) # 여기서 주의!! r, c는 1 이상의 자연수임. # 즉, r과 c를 그대로 인덱스로 써버리면 1 차이가 남. # 따라서, 아래처럼 정의해주겠음. # 근데 그냥 내가 편한 걸로 정의해줬음. # 1. 기준점 잡기 x, y = r - 1, c - 1 # 2. 상 하 좌 우 델타값 정의 dx = [-1, 1, 0, 0] dy = [0, ..
[Python/백준] 20920. 영단어 암기는 괴로워 문제 접근 및 공부 내용, 풀이는 모두 하단 코드에 "주석"으로 포함되어 있으니 참고해주세요.문제 유형 보기더보기더보기정렬https://www.acmicpc.net/problem/209201차 풀이import sysinput = sys.stdin.readlinefrom collections import Counter# 우선순위1: 자주 나오는 단어일수록 앞에 배치한다.# 우선순위2: 해당 단어의 길이가 길수록 앞에 배치한다.# 우선순위3: 알파벳 사전 순으로 앞에 있는 단어일수록 앞에 배치한다# 입력 : 단어의 개수 N과 외울 단어의 길이 기준이 되는 M# 길이가 M 이상인 단어만 선택할 거임.# 출력 : 단어장에 들어갈 단어 우선순위 따라 순서대로 출력n, m = map(int, input().spli..
[알고리즘 코딩캠프 4일차] 스택, 큐, 덱, 그래프 - 인접 행렬, 인접 리스트 제가 재학 중인 대학교에서 열린 `파이썬 알고리즘 코딩캠프(25.02.03 ~ 25.02.14)` 수업을 듣고 정리한 글입니다.목차 :스택큐덱그래프인접 행렬인접 리스트스택더보기스택은 ADT에서 `push, pop` 두 가지 대표적인 연산을 가짐.후입선출파이썬은 스택이 따로 라이브러리로 정의되어있진 않고,리스트에서 append와 pop으로 정의되어 있음.이 정도만 알아도 나머진 문제푸는 데 지장 없고, 나머진 우리들의 사고력 문제.# 파이썬에서 스택은 리스트로 구현한다.stack = []# pushstack.append(1)stack.append(2)stack.append(3)print(stack)# peek (top에 있는 요소를 삭제하지 않고 조회만 하는 연산)# 따로 peek 연산이 있는 건 아니고,..
[알고리즘 코딩캠프 3일차] 2차원리스트 - 회전, 델타 탐색 제가 재학 중인 대학교에서 열린 `파이썬 알고리즘 코딩캠프(25.02.03 ~ 25.02.14)` 수업을 듣고 정리한 글입니다.목차 :2차원 리스트 2차원 리스트의 회전2차원 리스트의 델타 탐색2차원 리스트의 회전더보기# 1. 반복문을 이용한 시계방향 90도 회전matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9]]'''[ [7, 4, 1], [8, 5, 2], [9, 6, 3]]'''n = 3# rotated_matrix = [[0] * n for _ in range(n)]# for i in range(n):# for j in range(n-1, -1, -1):# rotated_matrix[i][2-j] = matrix[j][..
[Python/백준] 1931. 회의실 배정 https://www.acmicpc.net/problem/1931입력 : 회의의 수 N과 회의의 시작시간, 끝나는 시간출력 : 사용할 수 있는 회의의 최대 개수직관 및 접근회의실 사용 표를 만들거임. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있음. 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 시작 시간과 끝나는 시간 겹칠 수 있다.=> 이거 GREEDY에서 배운 그 스케쥴링 문제=> GREEDY로 풀기 전에, 우선 정렬이 필요함. 공부내용풀이1차 풀이(실패)import sysinput = sys.stdin.readlineN = int(input()) # 11print(N)# I_list = [tuple(map(int, input().split())) for..
[Python/프로그래머스] 42746. 가장 큰 수 https://school.programmers.co.kr/learn/courses/30/lessons/42746입력 : 주어진 정수를 담고 있는 리스트입력에는 0도 포함되어 있을 수 있음.출력 : 해당 정수들의 순서를 재배치하여 만들 수 있는 가장 큰 수를 나타내는 문자열직관 및 접근 공부내용풀이1차 풀이(실패)# 1차 풀이(테케 1 통과, 테케 2 실패)import mathdef solution(numbers): first_digit_dict = {} for num in numbers: # (key, value) 2차 풀이(실패)# 2차 풀이(테케 1 성공, 테케 2 실패)import mathdef solution(numbers): for num in numbers: ..