본문 바로가기
728x90

전체 글100

백준 24444 - 너비 우선 탐색 1( Python) - BFS https://www.acmicpc.net/problem/24444 24444번: 알고리즘 수업 - 너비 우선 탐색 1 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양방 www.acmicpc.net 너비 우선 탐색은 queue 자료구조를 사용해서 풀 수 있다. 기본예제와 차이점 정리 1. 양방향간선이므로 그래프를 뒤집어서 한 번 더 저장해야됨 2. 오름차순으로 방문해야하므로 큐에서 꺼낸 노드의 그래프를 순회하기전에 해당 그래프를 정렬해주어야한다. 3. 방문한 순서대로 출력을 해야하는 것이 아닌 해당 노드의 방문 순서를.. 2023. 1. 18.
백준 1012 - 유기농 배추( Python ) - DFS https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net dfs...bfs....어렵다 어려워 알고리즘 오픈 카톡방에 물어보니 24444, 1012, 7569문제로 기본을 쌓아보라는 추천받아서 주말동안 풀긴 풀었다 한문제당 한시간은 안걸린게 다행이였을까~? 여튼 이제는 조금 아주 조금은 감이 잡히는 것 같다 recursionError 가 발생해서 재귀깊이 제한해주는 코드를 추가해야 통과 할 수 있다. 이외에는 이코테에서 학습한 DFS코드와 동일하게 풀 수 있었다. .. 2023. 1. 16.
백준 16953 - A → B ( Python ) https://www.acmicpc.net/problem/16953 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net 그리디 알고리즘의 일종이라고도 볼 수 있는 것 같다 풀이 1. b가 짝수인 경우 2로 나눌 수 있음 2. 1로 끝나는 경우 1제거 3. 짝수이면서 1로 끝나는 경우는 없으므로 if ~ elif로 작성 풀이 방식을 떠올리는 건 어렵지 않았다. 하지만 1로 끝나는 경우 1제거하는 방식을 문자열로 치환후 slice하였는데 다른 사람 풀이를 확인해보니 10으로 나눈 나머지로 분기를 정할 수 있었다.. 문제의 전제가 숫자였으니 이런 방식도 떠올려야하는데 아직 알고리즘 풀이가 많이 부족하다ㅠ 힘내자... a, b = map(int,.. 2023. 1. 14.
백준 18352 - 특정 거리의 도시 찾기( Python ) https://www.acmicpc.net/problem/18352 18352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개 www.acmicpc.net 다익스트라 그 자체인 문제 다익스트라 풀이법 1. 출발 노드를 설정 2. 최단 거리 테이블을 기록할 배열을 무한값으로 초기화 3. 노드간 거리 입력 받고 그래프 생성 4. 시작노드를 우선 순위큐에 삽입 5. 시작노드를 기준으로 방문하지 않은 노드 중에서 최단 거리가 가장 짧은 노드를 선택 6. 해당 노드를 거쳐 다른 노드로 .. 2023. 1. 12.
백준 2512 - 예산 ( Python ) https://www.acmicpc.net/problem/2512 2512번: 예산 첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상 www.acmicpc.net 이진 탐색으로 풀이가 가능하다 예산의 상한선을 구하는 문제다 예산의 상한선을 구하기 위해서는 총 예산의 최적의 합계가 필요하다. 이진 탐색의 중간값이 예산의 상한선이 되며 해당 상한선보다 예산이 큰 경우에는 상한선을 더하고 예산이 작거나 같은경우에는 해당 예산을 더한다 총 예산의 합이 지정된 예산값보다 작거나 같은 경우 상한선을 높이고 -> start값을 늘려줌 초과된 경우에는 상한선을 줄이.. 2023. 1. 10.
React - Form Handling ( 추가, 수정, 삭제 ) 객체 배열의 추가, 수정, 삭제는 배열 추가, 수정, 삭제와 동일하게 새로운 객체 배열을 만들어서 진행한다. 그래야 리렌더링이 발생한다! import { useState } from 'react' import BookCreate from './components/BookCreate'; import BookList from './components/BookList'; function App() { const [books, setBooks] = useState([]); // 추가 const createBook = (title) => { const updatedBooks = [ ...books, { id: Math.round(Math.random() * 9999), title: title } ] setBook.. 2023. 1. 9.
728x90
반응형