본문 바로가기

Python7

[1일 1문제] 백준 1654번: 랜선 자르기 문제 집에서 시간을 보내던 오영식은 박성원의 부름을 받고 급히 달려왔다. 박성원이 캠프 때 쓸 N개의 랜선을 만들어야 하는데 너무 바빠서 영식이에게 도움을 청했다. 이미 오영식은 자체적으로 K개의 랜선을 가지고 있다. 그러나 K개의 랜선은 길이가 제각각이다. 박성원은 랜선을 모두 N개의 같은 길이의 랜선으로 만들고 싶었기 때문에 K개의 랜선을 잘라서 만들어야 한다. 예를 들어 300cm 짜리 랜선에서 140cm 짜리 랜선을 두 개 잘라내면 20cm는 버려야 한다. (이미 자른 랜선은 붙일 수 없다.) 편의를 위해 랜선을 자르거나 만들 때 손실되는 길이는 없다고 가정하며, 기존의 K개의 랜선으로 N개의 랜선을 만들 수 없는 경우는 없다고 가정하자. 그리고 자를 때는 항상 센티미터 단위로 정수길이만큼 자른다.. 2023. 9. 22.
[이코테] chapter05 DFS/BFS 아래 글은 [이것이 코딩 테스트다 wiht 파이썬] 책을 기반하여 작성한 글입니다. DFS/BFS : 그래프를 탐색하기 위한 대표적인 두 가지 알고리즘 앞서 배운 chapter03 그리디, chapter04 구현 알고리즘과 달리 이번 챕터는 이론 공부가 중요하다. (1) 배경 지식 ● 탐색(search): 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 ● 자료 구조(data structure): 데이터를 표현하고 관리하고 처리하기 위한 구조 탐색 알고리즘에서 자주 사용하는 자료구조인 스택과 큐에 대해 알아보도록 하겠다. 두 자료구조는 모두 삽입(push), 삭제(pop) 두 핵심 함수로 구성된다. ● 스택(stack): #박스_쌓기 #First_In_Last_Out 파이썬에서는 스택을 이용할 떄에는.. 2023. 7. 24.
[이코테] chapter12 구현 문제 아래 글은 [이것이 코딩 테스트다 wiht 파이썬] 책을 기반하여 작성한 글입니다. 구현 알고리즘 : 머릿속에 잇는 알고리즘을 정확하고 빠르게 프로그램으로 작성하기 ✨구현 알고리즘은 피지컬 싸움이다! (1) 완전 탐색 : 모든 경우의 수를 다 계산하는 해결 방법 (2) 시뮬레이션 : 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행하는 문제 - 고려해야하는 메모리 제약 사항 - 파이썬은 자료형의 표현 범위 제한은 고려 안해도 됨! 리스트는 보통 128MB ~ 512MB 데이터의 개수(리스트 길이) 메모리 사용량 1,000 약 4KB 1,000,000 약 4KB 10,000,000 약 40MB 12-1.py 럭키 스트레이트 - ⭐1/3 (⭕) N = input() n = len(N) // 2 rig.. 2023. 7. 24.
[이코테] chapter04 구현 아래 글은 [이것이 코딩 테스트다 wiht 파이썬] 책을 기반하여 작성한 글입니다. 구현 알고리즘 : 머릿속에 잇는 알고리즘을 정확하고 빠르게 프로그램으로 작성하기 ✨구현 알고리즘은 피지컬 싸움이다! (1) 완전 탐색 : 모든 경우의 수를 다 계산하는 해결 방법 (2) 시뮬레이션 : 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행하는 문제 - 고려해야하는 메모리 제약 사항 - 파이썬은 자료형의 표현 범위 제한은 고려 안해도 됨! 리스트는 보통 128MB ~ 512MB 데이터의 개수(리스트 길이) 메모리 사용량 1,000 약 4KB 1,000,000 약 4KB 10,000,000 약 40MB 4-1.py 상하좌우 - ⭐1/3 (⭕) 파이썬에는 switch-case문이 없다..!! 교재 풀이에서는 .. 2023. 7. 18.
[이코테] chapter11 그리디 문제 아래 글은 [이것이 코딩 테스트다 wiht 파이썬] 책을 기반하여 작성한 글입니다. 그리디(greedy) 알고리즘 : 현재 상황에서 가장 좋아 보이는 것만을 선택하는 알고리즘 그리디는 최적의 해를 보장할 수 없을 때가 많음 but, 코딩 테스트에서의 대부분의 그리디문제는 탐욕법으로 얻은 해가 최적의 해! 정당성 분석 필수! 11-1.py 모험가 길드 - ⭐1/3 (❌) 기준도 못잡고, 정당성 분석도 못해서 20분동안 고민하다가 포기한 문제! ㅠㅠ [교재 풀이] 근데 풀이를 보니까 넘 단순했다.. 오름차순으로 공포도 정렬 후 앞에서부터 공포도를 하나씩 확인하며 ''현재 그룹에 포함된 모험가의 수" >= "현재 확인하고 있는 공포도" 위의 조건을 만족하면 그룹 설정! 문제를 풀다가 'int' object i.. 2023. 7. 10.
[이코테] chapter03 그리디 아래 글은 [이것이 코딩 테스트다 wiht 파이썬] 책을 기반하여 작성한 글입니다. 그리디(greedy) 알고리즘 : 현재 상황에서 가장 좋아 보이는 것만을 선택하는 알고리즘 그리디는 최적의 해를 보장할 수 없을 때가 많음 but, 코딩 테스트에서의 대부분의 그리디문제는 탐욕법으로 얻은 해가 최적의 해! 정당성 분석 필수! 3-1.py 동전 문제 - ⭐1/3 (❌) N = int(input()) cnt = 0 coinType = [500, 100, 50, 10] for i in coinType: cnt += N // i N %= i print(cnt) 정당성: 큰 수의 화폐가 모두 작은 수의 화폐의 배수임. 동전을 타입별로 리스트에 넣어 사용 3-2.py 큰 수의 법칙 - ⭐1/3 (⭕15m 30s) N.. 2023. 7. 10.
[이코테] 아래 글은 [이것이 코딩 테스트다 wiht 파이썬] 책을 기반하여 작성한 글입니다. 책 소개 이것이 코딩 테스트다 with 파이썬 나동빈 한빛미디어 Part 02 주요 알고리즘 이론과 실전 문제 ch03 그리디 ch04 구현 ch05 DFS/BFS ch06 정렬 ch07 이진 탐색 ch08 다이나믹 프로그래밍 ch09 최단 경로 ch10 그래프 이론 Part 03 알고리즘 유형별 기출 문제 ch11 그리디 문제 ch12 구현 문제 ch13 DFS/BFS 문제 ch14 정렬 문제 ch15 이진 탐색 문제 ch16 다이나믹 프로그래밍 문제 ch17 최단 경로 문제 ch18 그래프 이론 문제 ch19 2020년 상반기 삼성전자 기출 문제 2023. 7. 10.