본문 바로가기
반응형

BOJ13

[BOJ 1260] DFS와 BFS 파이썬 풀이 문제보기 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. www.acmicpc.net DFS와 BFS는 자주 쓰이는 알고리즘이기 때문에 정리해두면 좋습니다. 파이썬(Python3) 코드 from collections import deque def bfs(graph, start): for i in graph: graph[i].sort() explored, queue = set(), deque([start]) explored.ad.. 2019. 9. 21.
[BOJ 2805] 나무 자르기 - 파이썬 풀이 문제 보기 2805번: 나무 자르기 문제 상근이는 나무 M미터가 필요하다. 근처에 나무를 구입할 곳이 모두 망해버렸기 때문에, 정부에 벌목 허가를 요청했다. 정부는 상근이네 집 근처의 나무 한 줄에 대한 벌목 허가를 내주었고, 상근이는 새로 구입한 목재절단기을 이용해서 나무를 구할것이다. 목재절단기는 다음과 같이 동작한다. 먼저, 상근이는 절단기에 높이 H를 지정해야 한다. 높이를 지정하면 톱날이 땅으로부터 H미터 위로 올라간다. 그 다음, 한 줄에 연속해있는 나무를 모두 절단해버린다. 따 www.acmicpc.net 파이썬(Python) 풀이 N, M = map(int, input().split()) trees_height = list(map(int, input().split())) min_height.. 2019. 9. 11.
[BOJ 1157] 단어 공부 - 파이썬 풀이 문제 보기 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 문제 해설 알파벳 소문자 a-z의 아스키코드는 97 ~ 122이고, 대문자 A-Z의 아스키코드는 65_90입니다. 아스키 코드 변환하는 방법은 2019/09/10 - [DEVLOG/Algorithms] - [BOJ 11654] 아스키 코드 - 파이썬 풀이 문자열에서 각 문자의 개수를 세는 방법은 count() 함수를 사용하는 것입니다. "baaa"라는 문자열이 주어졌을 때, word.count('a')를 통해 'a'의 개수 3을 얻을 수 있습니다. 각 문자별로 개수를 리스트에 저장하고.. 2019. 9. 10.
[BOJ 10809] 알파벳 찾기 - 파이썬 풀이 문제 보기 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다. www.acmicpc.net 문제 해설 find() 함수는 문자열에서 문자의 첫 번째 위치를 찾을 수 있는 함수입니다. a부터 z까지 순회하며, 문자열에서 해당 문자의 위치를 리스트에 저장하면 됩니다. 파이썬(Python) 풀이 alphabet_list = [] S = input() for ascii_code in range(97, 123): alphabet_list.append(S.fi.. 2019. 9. 10.
반응형