본문 바로가기

전체 글

코딩테스트 대비 백준 문제 뽀개기 : 최근 빈출 유형 1. ACM Craft https://www.acmicpc.net/problem/1005 1005번: ACM Craft 첫째 줄에는 테스트케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다. 첫째 줄에 건물의 개수 N 과 건물간의 건설순서규칙의 총 개수 K이 주어진다. (건물의 번호는 1번부 www.acmicpc.net - 문제: 건물을 빨리 지을 수록 이기는 게임이다. 건물을 짓기위한 순서가 정해져 있으며 각 건물을 짓는데 필요한 시간이 다르다고 할 때 특정건물을 가장 빨리 지을 때까지 걸리는 최소시간을 알아내는 프로그램을 작성하라 - 해결방안: 위상정렬 + DP # 위상정렬: visited, 단방향 그래프(graph), 진입차수리스트(indegree), 큐(deque)가 필요하다!.. 더보기
코딩테스트 대비 백준 문제 뽀개기 : dp 0. 출처 https://covenant.tistory.com/224?category=727170 코딩테스트 대비를 위한 백준 문제 추천 코딩테스트 대비를 위한 백준 문제 추천 끝 없는 훈련만이 실전에서 흐트럼없이 정답을 향해서 움직일 수 있습니다. (Photo by Specna Arms on Unsplash) 작년 한 해 수많은 코딩테스트를 직접 경험하고 covenant.tistory.com 0-2. 런타임 에러 발생 시 확인 https://blockdmask.tistory.com/550 [python] 파이썬 에러 종류 10가지 안녕하세요. BlockDMask입니다. 오늘은 파이썬에서 자주 보는 에러 종류에 대해서 이야기해보려 합니다. 우리가 코드를 작성하다 보면 빈번히 발생하는 것이기 때문에 놀라지.. 더보기
코딩테스트 대비 백준 문제 뽀개기 : 기초 백준 문제 추천 1. 수들의 합 (그리디) - 문제: 서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값? https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net - 해결 과정: 1,2,3,...부터 연속된 합이 최소인 줄 알고 구간합 구하는 방식으로 투포인터 썼는데, 생각해보니 항상 연속인 값이 나올 순 없다.!!!! 1,2,3,...부터 누적합을 구하다가 1+2+3+ ...M = num > S를 처음으로 만족하게 되면, (S - num)인 숫자만 쏙 빼면 되므로 M-1을 출력한다. ----------------------------------------.. 더보기
최소 스패닝 트리(MST) 1. 스패닝 트리 / 신장 트리 - 그래프 내의 모든 정점을 포함하고 그래프의 일부 간선을 선택해서 만든 트리 - 스패닝 트리는 노드가 N개, 간선이 N-1개가 됨 - Spanning Tree는 모든 정점들이 연결 되어 어야 하고 사이클을 포함해서는 안된다. Spanning Tree는 그래프에 있는 n개의 정점을 정확히 (n-1)개의 간선으로 연결 한다. 2. 최소 스패닝 트리(MST) - 간선의 가중치의 합이 최소인 스패닝 트리 - 통신망, 도로망, 유통망에서 길이, 구축 비용, 전송 시간 등을 최소로 구축하려는 경우에 사용됨 - 알고리즘 : 크루스칼, 프림 (둘 다 그리디 기반 알고리즘) 3. 알고리즘1 : 프림 - https://www.fun-coding.org/Chapter20-prim-live... 더보기
코딩테스트 대비 백준 문제 뽀개기 : 준비운동 PART2. 약점 체크 0. 문제 출처 https://covenant.tistory.com/224?category=727170 코딩테스트 대비를 위한 백준 문제 추천 코딩테스트 대비를 위한 백준 문제 추천 끝 없는 훈련만이 실전에서 흐트럼없이 정답을 향해서 움직일 수 있습니다. (Photo by Specna Arms on Unsplash) 작년 한 해 수많은 코딩테스트를 직접 경험하고 covenant.tistory.com 1. 연산자 끼워넣기 https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데.. 더보기
런타임 에러 확인 1. dp문제에서 초기값 넣을 때 N값보다 큰 값 넣었는지 확인 - N = 1일 수 있는데 dp[2] = k 값 삽입구문이 있다거나.. 2. if else 조건 제대로 넣었는지 확인 (else문 안썼다거나, if인데 elif 썼다거나) 3. 비어있는 스택, 큐에 인덱스로 접근했을 때( 인덱스 접근 전에 len(stack)을 비교 안했거나, 맨 처음 데이터가 들어왔을때 처리라거나 등등) 더보기
Lv2 문제(간단한거) 1. N개의 최소 공배수 구하기 - a,b의 최소공배수 : a * b // gcd(a,b) 2. [1260] dfs와 bfs (실버2) - bfs는 "함수 시작하자마자, start노드 큐에 넣기 전에3 + 탐색 후 다음 노드 큐에 넣을 때 visited[i] = True로 바꾸기. 큐에서 뽑을 때 true로 바꾸면 중복접근됨 - 두 함수의 결과를 각각 한 줄 단위로 출력하고 싶으면 함수 내에선 print( ~,end = " "), 하고 함수 사이에 print("")넣기 - 맨 처음에 d_visited = b_visited = [False] * (N+1)로 했더니 둘이 같은 메모리 공간을 공유함! 즉 이름만 다르고 같은 배열처럼 됨!! 다른 문제 풀 때도 조심할 것 !!!1 - 헷갈리는 것 : 변수는 a=.. 더보기
(kakao) 메뉴 리뉴얼(python) 1. 문제 https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 2. 구현 과정 1) 메뉴 개수를 나타내는 course값이 10 이하이고, 각 단품 메뉴를 나타내는 알파벳이 26개이다. 코스 요리의 메뉴 개수가 2개라 하면, 가능한 경우의 수는 26C2이고, 3개라 하면 가능한 경우의 수는 26C3이다. => 26C1, 26C2, 26C3, 26C4,.... 26C10 2) 26C1 + 26C2 + 26C3 + .... 더보기