본문 바로가기

728x90
반응형
SMALL

분류 전체보기

(196)
Python - 최대 재귀 한도 깊이로 인한 Runtime Error 해결 방법 🟡 How to solve Python's Recursion ERROR? ✅ 백준 문제 11123번을 풀고 제출하던 중 런타임 에러(recursion error)를 만났을 때 ✅ 알고리즘 및 기본적인 로직은 다 맞는데 왜 런타임 에러(recursion error)가 뜨는지 짐작하지 못하고 있을 때 ✅ 그래프 탐색 문제에서 재귀 호출을 사용하여 프로그래밍을 했을 때 위의 경우에 해당한다면, 파이썬 재귀 깊이 제한에 걸렸을 가능성이 매우 높다. 우리는 알고리즘 문제를 풀 때 재귀 호출을 이용하여 푸는 경우가 굉장히 많은데, 이 때 문제에서 재귀를 많이 돌릴 경우 원인 미상의 런타임 에러(recursion error)에 빠지게 된다. ⚠️ 파이썬(Python)에서는 1000번 이상의 재귀(recursion)가..
[백준] 양 한마리... 양 두마리... : 11123번 - Python https://www.acmicpc.net/problem/11123 11123번: 양 한마리... 양 두마리... 얼마전에 나는 불면증에 시달렸지... 천장이 뚫어져라 뜬 눈으로 밤을 지새우곤 했었지. 그러던 어느 날 내 친구 광민이에게 나의 불면증에 대해 말했더니 이렇게 말하더군. "양이라도 세봐!" www.acmicpc.net 문제를 풀면서 몰랐던 개념 - 파이썬의 재귀 최대 깊이 기본 설정에 대한 개념 ⬇️⬇️⬇️ 아래 링크 참고 ⬇️⬇️⬇️ https://ye5ni.tistory.com/178 문제의 접근 방법 - DFS 알고리즘 사용하기 - 방문한 노드와 방문하지 않은 노드 구분하기 - 입력 받은 그리드를 저장할 수 있는 공간을 만들기 내가 막혔던 부분 - DFS 알고리즘을 구상하는 방법 - 양..
[CS] Domain, Name Server, Sub Domain 의 개념 Domain -> Domain 은 인터넷에 연결된 컴퓨터를 사람이 쉽게 기억하고 입력할 수 있도록 문자(영문,한글)로 만든 인터넷 주소이다. 도메인 종류 - 기본 도메인 : 처음에 신청한 기본 웹서버의 이름 (설정한 ip주소의 서버로 이동함) - 멀티 도메인 : 기본 도메인에 호스트 이름만 다르게 붙여서 사용하는 여러 개의 도메인 - 서브 도메인 : 멀티 도메인과 거의 같으며, 도메인명으로 사용할 수 있는 문자의 개수 내에서 원하는 만큼의 호스트 이름을 얼마든지 붙여서 사용할 수 있는 도메인 - 가상 도메인 : 기본 도메인외에 별도의 도메인으로 기본 도메인과 같은 홈페이지에 연결된 도메인 예시 www.one2ye-5ni.shop www -> 호스트 이름 one2ye-5ni.shop -> 도메인 도메인 체..
탐욕 알고리즘 (Greedy Algorithm) 그리디(탐욕) 알고리즘 : 그리디 알고리즘은 동적 프로그래밍(Dynamic Programming) 사용 시 지나치게 많은 일을 한다는 것에서 착안하여 고안된 알고리즘이다. 여러 경우 중 하나를 결정해야할 때마다 각 단계에서 가장 최선의 선택을 하는 기법으로 이 선택이 전체적으로도 최선이기를 바란다고 볼 수 있다. ! 항상 최적의 답을 구해주지는 않음 ! -> 그리디 알고리즘은 주로 정렬 알고리즘과 짝을 이뤄 출제되는데 "가장 큰 or 작은 순서대로"라는 기준을 제시해줌. * 최단 경로를 빠르게 찾아야 하는 문제 = 플로이드 워셜 or 다익스트라 알고리즘 대표적인 그리디 문제 : 거스름돈 문제 -> 500원, 100원, 50원, 10원짜리 동전이 무한히 존재한다. 이 때, 손님에게 거슬러 줘야 할 돈이 N..
[백준] 종이자르기 : 2628번 - Python https://www.acmicpc.net/problem/2628 2628번: 종이자르기 아래 과 같이 직사각형 모양의 종이가 있다. 이 종이는 가로방향과 세로 방향으로 1㎝마다 점선이 그어져 있다. 가로 점선은 위에서 아래로 1번부터 차례로 번호가 붙어 있고, 세로 점선 www.acmicpc.net 문제의 접근 방법 가로 점선을 잘랐을 때는 그 값을 세로길이에 저장하고, 세로 점선을 잘랐을 때는 그 값을 가로길이에 저장해야 한다. (ex) 3번 가로점선을 따라 자를 경우 그 잘린 값이 세로의 길이가 된다. 내가 막혔던 부분 - 문제의 접근 방법 문제 풀이 방법 (1) 가로와 세로 길이 w,h 입력받기 (2) 자를 횟수 n번 입력받기 (3) 나중에 길이를 직사각형의 길이를 계산하기 위해 width, he..
[백준] 세수정렬 : 2752번 - Python https://www.acmicpc.net/problem/2752 2752번: 세수정렬 숫자 세 개가 주어진다. 이 숫자는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 숫자는 모두 다르다. www.acmicpc.net 문제의 접근 방법 - 입력 받을 숫자 n개 입력받기 - 입력 받은 숫자들을 정렬하기 - 출력 형식에 맞춰서 정렬된 원소들 출력하기 내가 막혔던 부분 코드를 간결하게 구현하지 못함. 문제 풀이 방법 (1) 세 숫자를 일일히 입력받기, 일일히 형변환, 하나하나 append 함수를 사용해서 리스트에 추가 -> map 함수를 사용해서 한번에 입력받기, 정수로 형변환, 리스트에 넣기를 한번에 할 수 있음. (2) 반복문을 돌려서 출력하기 -> 그냥 인덱스를 찍어서 print 해주어도..
[백준] 최후의 승자는 누구? : 12760번 - Python https://www.acmicpc.net/problem/12760 12760번: 최후의 승자는 누구? 입력의 첫 줄에 플레이어의 수 \(N\)과 가진 카드 수 \(M\)이 입력 된다. \(( 2 \le N \le100, 1 \le M \le 100 )\) 그 다음 \(N\)줄에 걸쳐 각 플레이어가 들고 있는 카드에 적힌 숫자들이 입력된다. \(( 1 \le\) 카 www.acmicpc.net 문제를 풀면서 몰랐던 개념 (1) [Python] 비어있는 배열, 리스트 확인하기 -> 리스트가 비어있는지 아닌지 여부를 확인하기 위해서는 'not'을 사용해서 알 수 있음! # case 1 # arr = [] if not arr: print("arr is empty") else: print("arr is not ..
[백준] 잃어버린 괄호 : 1541번 - Python https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 문제를 풀면서 몰랐던 개념 - for 문 range 자리에 리스트 원소를 split 메소드로 나눈 값들만큼의 반복을 설정할 수 있다. 문제의 접근 방법 - '-' 부호가 나오기 전까지 모두 괄호 안으로 묶어서 더해버리기 - 수식이 주어지면 '+'를 기준으로 먼저 더해주고 남겨진 값들을 빼주면 항상 최솟값을 만들 수 있다. 내가 막혔던 부분 처음 아이디어를 떠올리는 과정에서 막혔다. -> 마이..

728x90
반응형
LIST