목록BOJ_백준 (122)
haju__log
https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net import sys #dfs 함수 def dfs(v): #v를 방문처리해서 True로 저장한다. visited[v]=True #방문처리한 노드는 출력 print(v,end=' ') #반복문을 돌면서 1번 노드와 인접한 노드들이 있는지 확인한다. for i in range(1,n+1): #만약 인접한 노드가 있고, 아직 방문하지 않았다면 (false는 방문처리 ..
https://www.acmicpc.net/problem/1453 1453번: 피시방 알바 첫째 줄에 손님의 수 N이 주어진다. N은 100보다 작거나 같다. 둘째 줄에 손님이 들어오는 순서대로 각 손님이 앉고 싶어하는 자리가 입력으로 주어진다. www.acmicpc.net ✅ 문제 풀이 n이 100까지만 가능함 -> 1~100을 인덱스 그대로 사용하기 위해서 101로 sit 리스트를 만들어줌 l에 손님들이 원하는 자리를 저장하고 반복문을 돌면서 해당 자리가 1로 이미 설정되어있으면 사용할 수 없으므로 result 값을 증가시킴 해당 자리가 0이면 비어있으므로 1로 바꾸어준다. import sys n=int(sys.stdin.readline()) sit=[0 for _ in range(101)] l=li..
https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net ✅ 문제 풀이 조건문 분기를 어떻게 해줄지 고민을 꽤 한 문제이다. 일단 5의 배수이면 바로 n//5의 값을 result에 저장한 후 while문 종료한다. 5의 배수가 아니면 3을 계속해서 줄여나가면서 0이 될 때까지 반복한다. (3을 빼주면 result값을 하나씩 증가해줘야함, 설탕 3kg짜리를 하나씩 배달하는 경우이므로) 마지막 조건에 걸리는 게 그냥 여기서 코드를 마무리하면 예제로 4가 들어올 경우 ..
https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net ✅ 문제 풀이 돈 인출할 시간의 합을 최소로 만들기 위해서는 각 사람들이 돈을 인출하는데 필요한 시간을 리스트로 받고, 그 값을 오름차순으로 정렬해서 계산하는 것이 최솟값을 가지게 된다. import sys n=int(sys.stdin.readline()) l=list(map(int,sys.stdin.readline().split())) t=[] l.sort() for i in range(n): tmp=0 for j in ra..