분류 전체보기

    [백준 1352] (bfs)효율적인 해킹 - python

    [백준 1352] (bfs)효율적인 해킹 - python

    https://www.acmicpc.net/problem/1325 a인 단방향 그래프로 만들어줘야했다 그리고 해킹 당하는 컴퓨터를 한 번 한 번 확인해야하기 때문에 for문 안에서 dfs함수를 실행했다 (i가 계속 바뀌도록) 그 외엔 일반적인 DFS방법으로 풀이했다 그리고 result를 컴프리헨션 방식으로 value가 max_value값과 같은 값들만 list에 담아내도록 했다 Asterisk(*)를 사용하여 result에 있는 값을 풀어냈다 def dfs(computers, v, count, visited, point): visited[v] = 1 count[point] += 1 for i in computers[v]: if visited[i] == 0: # print(i, end=' ') dfs(co..

    [백준 11725] (bfs)트리의 부모 찾기 - python

    [백준 11725] (bfs)트리의 부모 찾기 - python

    https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 풀기 트리의 부모를 찾는 문제. 너비 탐색인 bfs를 사용하는 것이 맞다고 생각하고 풀이했다 parent[1]은 0만 아니게 초기화 해주면 된다 # 부모에 있는 자식들을 구하는 것은 bfs from collections import deque n = int(input()) graph = [[] for _ in range(n+1)] parent = [0] * (n+1) for _ in range(n-1): a, b = map(int, input().spli..

    [백준 1206] DFS와 BFS - python

    [백준 1206] DFS와 BFS - python

    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의 기본을 학습할 수 있는 문제였다 from collections import deque n, m, v = map(int, input().split()) graph = [[] for _ in range(n+1)] visited_dfs = [0] * (n+1) visited_bfs = [0] * (n+1) for _ in range(m):..

    [백준 2606] (bfs)바이러스 - python

    [백준 2606] (bfs)바이러스 - python

    https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net tip 그래프 탐색 문제에 앞서 bfs와 dfs를 언제 써야하는지에 대한 팁을 적어보겠습니다 bfs문제는 최단경로 탐색할떄 유용 (시작정점에서 주어진 정점까지 최단경로 찾기, 방문하지 않는 노드가 있어도 될때, 일부 경로만 탐색하는 경우, 미로찾기 문제) dfs는 전체중 일부경로만 정답인 경우 (성공적인 결론을 내릴 때까지 트리 탐색, 모든 경우를 방문해야하는 경우, 모든 경우를 구한 후 일부만선택(완..

    [백준 20546] 기적의 매매법 - python

    [백준 20546] 기적의 매매법 - python

    https://www.acmicpc.net/problem/20546 20546번: 🐜 기적의 매매법 🐜 1월 14일 기준 준현이의 자산이 더 크다면 "BNP"를, 성민이의 자산이 더 크다면 "TIMING"을 출력한다. 둘의 자산이 같다면 "SAMESAME"을 출력한다. 모든 결과 따옴표를 제외하고 출력한다. www.acmicpc.net 문제 풀이 문제에 써있는대로 코드를 구현하려 노력했다 bnp 매매법은 현재 가지고 있는 돈보다 주식 가격이 낮은 경우 전량 매수 방법으로 코드를 짰다 bnp코드 # bnp bnp_money = money bnp_result = 0 for stock in stocks: if stock = 3) 현재 가지고 있는 돈으로 주식을 전량 매수할 수 있도록 했다 매도 : 주식 가격이..

    [백준 5597] 과제 안 내신 분..? - python

    [백준 5597] 과제 안 내신 분..? - python

    https://www.acmicpc.net/problem/5597 5597번: 과제 안 내신 분..? 입력은 총 28줄로 각 제출자(학생)의 출석번호 n(1 ≤ n ≤ 30)을 하나씩 입력합니다. 입력한 출석번호에 중복은 없으며, 순서에 상관없이 입력받을 수 있어야 합니다. www.acmicpc.net 문제 풀이 sort 내장함수 사용 30번까지 출석 list를 만들고, for문으로 과제 낸 번호 입력을 받은 후, 출석 list가 0인 것만 출력하는 방식으로 구현했습니다 enumerate함수를 사용해 index와 value를 사용해 value값이 0인 것만 index_lst에 담았습니다 0번은 필요없으니 remove함수를 이용해 삭제했습니다 index_lst에 남은 수를 sort로 정렬하여 출력했습니다 ..