[백준/Python] #9095 : 1, 2, 3 더하기 - 다이나믹 프로그래밍
·
알고리즘/백준 풀이
https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 아무것도 안보면서 푸는 동안 너ㅓㅓ무 어려웠다... 다이나믹 프로그래밍 너무 어렵다ㅠㅠ 솔직히 말하면 교재에 있는 예제들도 완전 100프로 이해가는건 아님... 그래도 이렇게라도 풀다보면(아직까진 푸는게 푸는게 아닌 단계이지만,,) 조금씩이라도 발전하겠지ㅠ! 머리가 터질 것 같아서 결국 언제나처럼 구글링의 힘을... 빌림 (ㅠ나약한 나ㅠ) 블로그 두 개정도만 참고해도 원리를 대충 알게 됨.. 알고리즘의 흐름? 작동 원리랄까? 그 과정이 잘 납득되지가 않는 거같음 이 파트는 정말 창피하지만 지금까..
[백준/Python] #1920 : 수 찾기 - 이분탐색
·
알고리즘/백준 풀이
https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 교재 실전문제 2번의 7-5번 풀이와 아주 유사한 문제 유형! 이어서 여유를 가지고 풀어봤 지만 ㅋ ?뭐가 틀린거임? 교재 코드 거의 똑같이 참고했구만 보니까 우선 15번째 줄에서 들여쓰기가 잘못됨. while문을 다 돌고 나와서 답을 찾을 수 없으면 그때 None을 반환하는게 맞음. 근데 이렇게 고치고 제출했더니 시간초과 뜨고 런타임 에러도 뜨고...
[Python] 리스트 요소 [] 대괄호 없이 한번에 출력하기
·
알고리즘/Python
arr = [1, 2, 3, 4] print(*arr) # 1 2 3 4 * 붙여주기! 이렇게 하면 for문을 쓰지 않아도 리스트 안의 요소들만 꺼내서 한 줄에 한 번에 출력할 수 있다. print(*sorted(arr)) 와 같이 응용해서 사용할 수도 있다! 백준 문제 #11650, #11651, #10814 풀면서 사용한 방법인데 나름 유용(?)한 것 같아서 간단히 정리해봄.
[백준/Python] #2309 : 일곱 난쟁이
·
알고리즘/백준 풀이
https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 9명 중 7명을 골라서 그 7명의 키를 합친 값이 100일 경우를 찾으면 될 것 같아서 "조합"을 떠올렸고, 관련 라이브러리를 검색하여 사용해보기를 먼저 시도하였다. 근데 잘 안돼서 구글링으로 나랑 비슷하게 접근한 코드를 조금 참고함. import itertools array = [int(input()) for _ in range(9)] for i in itertools.combinations(array,..
그래프 탐색 알고리즘 DFS/BFS 차이점 및 특징
·
알고리즘
그래프 탐색 알고리즘 이해하기그래프: 여러 개체들이 연결되어 있는 자료구조탐색: 특정 개체를 찾기 위한 알고리즘 DFS, BFS를 드라마를 볼 때로 비유하자면드라마 한 개를 끝나길 기다렸다가 몰아본다 = DFS (깊이 우선 탐색)드라마 여러 개를 하나씩 다 챙겨본다 = BFS (너비 우선 탐색) 대표적 문제 유형 1. 경로 탐색 유형 A 지점부터 B 지점까지의 최소 거리 구하기, 최단 시간 구하기 2. 네트워크 유형 여러 개체들이 주어진 상태에서 연결되어 있는 그룹의 개수 구하기, 두 개체가 같은 네트워크 안에서 연결되어 있는지 확인하기 3. 조합 유형 여러 가지의 조합을 전부 만들고 비교해보기 프로그래머스의 타겟 넘버, 네트워크, 단어 변환, 여행경로 등의 문제를 보고 DFS/BFS 를 떠올렸다면? =..
[백준/Python] #1260 : DFS와 BFS - DFS/BFS
·
알고리즘/백준 풀이
https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net DFS/BFS 유형 문제 중에 가장 기초적인 문제이다. 이론을 이해하고 났다면 금방 풀 수 있는 문제지만 혹시나 알고리즘 공부가 아예 처음이거나, 문제에 적용하려고 하니 낯선 분들을 위해 베이스로 알면 좋은(?) 개념을 조금 정리해보았다. 덱(deque) 사용법 - 초기화 deque(iterable, [, maxlen])를 사용해 초기화 from collect..
해안해
'알고리즘' 카테고리의 글 목록 (3 Page)