본문 바로가기

전체 글

(151)
[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: ..
[Python/DailyAlgo] 70. 이차원 배열의 회전 문제 접근 및 공부 내용, 풀이는 모두 하단 코드에 "주석"으로 포함되어 있으니 참고해주세요.문제 유형 보기 더보기이차원리스트https://dailyalgo.kr/ko/problems/70 입력 : N x M 자연수로 이루어진 행렬 numbers그리고 회전할 각도를 나타내는 정수 rotate (= 90 or 180 or 270)출력 : 회전을 수행한 후의 행렬1차 풀이(성공)def solution(numbers, rotate): N = len(numbers) M = len(numbers[0]) # N x M matrix numbers ''' 3 x 2 a11 a12 a21 a22 a31 a32 => 2 x 3 a31 a21 a11 a32 a22 a12..
[Python/DailyAlgo] 69. 이차원 배열에서 특정 구간 행순회 문제 접근 및 공부 내용, 풀이는 모두 하단 코드에 "주석"으로 포함되어 있으니 참고해주세요.문제 유형 보기더보기 이차원리스트https://dailyalgo.kr/ko/problems/69 입력 : N x M 자연수로 이루어진 행렬 numbers그리고 행순회할 구간의 시작 및 끝 인덱스를 나타내는 리스트 start, end출력 : 행순회한 모든 원소들의 합테스트케이스 번호 numbers start end return 1 [[1,2,3],[4,5,6],[7,8,9]] [1,1] [2,0] 18 2 [[10,20],[30,40]] [0,0] [1,1] 100 3 [[5]] [0,0] [0,0] 51차 풀이(성공) - C스러운 풀이# 1차 풀이(성공)def solution(number..
[Python/백준] 2738. 행렬 덧셈 문제 접근 및 공부 내용, 풀이는 모두 하단 코드에 "주석"으로 포함되어 있으니 참고해주세요.문제 유형 보기더보기더보기이차원 리스트https://www.acmicpc.net/problem/2738 입력 : 두 행렬 A, B의 크기 NxM출력 : 두 행렬을 원소합한 결과# 입력3 31 1 12 2 20 1 03 3 34 4 45 5 100# 출력4 4 46 6 65 6 100 직관 및 접근matrix를 위 출력처럼 출력하려면, 언패킹을 사용하는 게 가장 파이써닉하다.matrix = [ [4, 4, 4], [6, 6, 6], [5, 6, 100],]# 언패킹을 활용하여 출력for line in matrix: print(*line)'''4 4 46 6 65 6 100'''풀이 1 - 두 행렬을 원소합한 ..