본문 바로가기

Python10

[백준] (Python) 12865번: 평범한 배낭 보호되어 있는 글 입니다. 2023. 7. 11.
[백준] (Python) A와 B 머리말 문제 링크 12904번: A와 B 이 문제를 선택한 이유 문제를 읽고 해석할 수 있는 능력(문해력) 반복문과 조건문을 적재적소에 활용하기 구현 문제 유형 연습 풀이 1) 잘못된 접근 방식 - 브루트 포스 처음에는 2가지의 연산이 존재하고 각각 결과론적으로 A를 추가하거나 B를 추가하거나 2가지이다. $n$ = (결괏값의 길이) - (초깃값의 길이)만큼의 경우의 수가 있으니 브루트 포스로 접근하면 되겠구나 싶었다. 결국 길이에 대한 2가지의 연산이므로 $2^{n}$을 생각하여 문제를 풀었다. # =================== 브루트 포스 -> 시간 초과 ===================== # S와 T 입력 input_string = input().strip() objective_string.. 2023. 5. 26.
[백준] (Python) 7568번: 덩치 머리말 문제 링크 7568번: 덩치 이 문제를 선택한 이유 구현 문제 연습 반복문과 조건문을 적재적소에 활용하기 위함 풀이 몸무게와 키에 대한 표를 리스트의 요소로서 할당해야 한다. 여기서 몸무게와 키는 튜플로 묶어서 할당했다. 리스트의 요소를 반복하면서 현재의 요소를 1등으로 초기화한다. 자신을 포함한 다른 모든 요소를 비교하면서 자신보다 몸무게도 많이 나가고 키도 큰 사람이 있다면 나의 등수의 숫자의 크기를 늘린다. 여기서 자기 자신을 포함해도 4번의 조건에 해당하지 않기에 괜찮다. 4번에서 나온 등수를 공백 단위로 하나하나 출력한다. # 7568번: 덩치 # 실버 5 # # import sys # sys.stdin = open("input.txt", "r") # input = sys.stdin.re.. 2023. 5. 24.
[백준] (Python) 1193번: 분수찾기 머리말 문제 링크 1193번: 분수찾기 이 문제를 선택한 이유 구현 문제를 푸는데 나에게 맞는 난이도를 조절하기 위해 평소보다 약간 느슨한 난이도의 문제를 골랐다. 스터디를 새로 만들었는데, 팀원이 알고리즘 문제가 익숙하지 않아서 같이 풀어 보기 위해서 너무 쉽지도, 어렵지도 않은 문제를 찾다 보니 선택하게 되었다. 풀이 1. 직접 예시를 입력해 보기 아래처럼 직접 순서를 써 보았다. """ row x numer/denom 1 1 1/1 2 2 3 1/2 2/1 3 4 5 6 3/1 2/2 1/3 4 7 8 9 10 1/4 2/3 3/2 4/1 5 11 12 13 14 15 5/1 4/2 3/3 2/4 1/5 """ """ 8은 4번 줄의 2번째이다 row 8 - 1 = 7 1 8 - 1 - 2 = 5 .. 2023. 5. 22.
[백준] (Python/Swift) 3040번: 백설 공주와 일곱 난쟁이 📌 문제 3040번: 백설 공주와 일곱 난쟁이 📌 올바른 풀이 7개의 옳은 데이터를 찾는 게 아닌 그것의 여집합인 2개의 틀린 데이터를 찾는 것이 핵심이다. 그 2개의 데이터를 어떻게 다루냐에 따라 여러 방식이 있을 것이다. 압도적으로 크거나 압도적으로 작은 수로 재할당 하거나 처음 발견한 두 깂을 저장하여 배열에서 삭제하거나 적당한 수(0이나 -1)로 재할당 하되, 이중 for 문을 한번에 break 하여 빠져 나오는 것이다. 아래의 내용은 초반에 잘못된 방식으로 접근하여 작성한 풀이와 코드이다. 📌 잘못된 풀이 7개의 옳은 데이터를 찾는 게 아닌 그것의 여집합인 2개의 틀린 데이터를 찾는 것이 핵심이다. 이중 반복문을 돌 때, Python의 range() 함수와는 다르게 이중 for 문에서 바깥쪽 f.. 2023. 3. 25.
큐(Queue) in Python 목차 머리말 들어가기 전에 학습 목표 선형 자료구조에서 두 번째로 알아볼 것은 큐(queue)이다. 큐의 정의와 특징에 대해 살펴보고, 파이썬으로 구현해 보자. 이전 포스팅 - 스택 스택(stack) in Python 큐(Queue) 정의 큐를 사전에서 찾아보면 (무엇을 기다리는 사람, 자동차 등의) 줄이라는 뜻의 단어이다. 위의 사진처럼 기다리는 사람의 줄이 대표적인 큐이다. 큐(queue)는 "뒤"라고도 불리는 한쪽 끝에서 새 요소가 추가되고, 흔히 "앞"이라고도 불리는 다른 쪽 끝에서 이미 있는 요소가 제거되는 선형 자료 구조이다. A queue is a linear data structure where the first element is inserted from one end, called th.. 2023. 3. 15.
[알고리즘] 삽입 정렬(Insertion Sort) in Python 카드 놀이를 할 때 나도 모르게 카드를 정렬한 적이 있는가? 그때 어떠한 방식으로 정렬을 했는지 생각해 보자. 정렬 알고리즘에서 세 번째로 배워 볼 것은 바로 삽입 정렬이다. 삽입 정렬이 어떻게 동작하는지 알아 보고 실제 코드로 구현해 보자. 📌 정의 Insertion sort is a simple sorting algorithm that works similar to the way you sort playing cards in your hands. The array is virtually split into a sorted and an unsorted part. Values from the unsorted part are picked and placed at the correct position in .. 2023. 3. 13.
[알고리즘] 선택 정렬(Selection Sort) in Python 정렬 알고리즘에서 두 번째로 배워 볼 것은 선택 정렬이다. 선택 정렬은 어떻게 동작하는지 알아 보고 실제 코드로 구현해 보자. 📌 정의 Selection sort is a simple and efficient sorting algorithm that works by repeatedly selecting the smallest (or largest) element from the unsorted portion of the list and moving it to the sorted portion of the list. 선택 정렬은 리스트(배열)의 정렬되지 않은 부분에서 가장 작은(혹은 가장 큰) 요소를 반복적으로 선택하여, 리스트의 정렬된 부분으로 옮기는 방식의 간단하고 효율적인 정렬 알고리즘이다. Sele.. 2023. 3. 12.
스택(Stack) in Python 목차 머리말 들어가기 전에 선형 자료구조(linear data structure) 중에서 스택(stack)에 대해 알아 보자. 스택(stack)을 사전에서 찾아보면 무더기, 더미라는 뜻의 영단어이다. 아래의 돌탑이 대표적인 스택이다. 스택 Stack 정의 A stack is an ordered list in which insertions and deletions are made at one end, called the top. 스택(stack)은 상단이라 불리는 한쪽 끝에서 삽입과 삭제가 이루어지는 선형적 자료구조이다. Data Structures & Algorithms - Stacks & Queues 특징 스택은 밑에서 점차 위로 쌓아올리는 선형적 자료구조이다. 위의 돌탑에서 알 수 있듯이, 쌓아올리든.. 2023. 3. 11.
[알고리즘] 버블 정렬(Bubble Sort) in Python 정렬 알고리즘 중에서 가장 직관적이고 간단한 버블 정렬에 대해 알아보자. 그리고 버블 정렬이 어떻게 동작하는지 배우고 이를 코드로 구현해 보자. 📌 정의 Bubble sort, sometimes referred to as sinking sort, is a simple sorting algorithm that repeatedly steps through the input list element by element, comparing the current element with the one after it, swapping their values if needed. 가라앉는 정렬이라고도 불리는 버블(거품) 정렬은, 입력된 리스트의 요소 별로, 현재 요소를 바로 다음의 요소와 비교를 하는데, 필요에 따라 서.. 2023. 3. 10.
반응형