본문 바로가기

전체 글51

[백준] 1459 걷기 (파이썬/python) 🎈문제 https://www.acmicpc.net/problem/1459 🎁알고리즘 및 접근 수학(?) 도로를 따라서 두 번 이동하는 것이 대각선으로 이동하는 시간보다 적게 걸리는 경우 w로만 이동 도로를 따라서 두 번 이동하는 것이 대각선으로 이동하는 시간보다 많이 걸리는 경우 대각선으로 이동하고 남은 개수가 짝수 일 때 w > s 이면 대각선으로 이동 w s 이면 대각선으로 최대한 이동 후 w로 한 번 이동 w < s이면 도로를 따라서 이동 💻코드 # 1459 걷기 # 입력받기 x,y,w,s = map(int,input().split()) anser = 0 if 2*w s: answer += (large-small) .. 2023. 10. 3.
[백준] 14502 연구소 (파이썬/python) 🎈문제 https://www.acmicpc.net/problem/14502 🎁알고리즘 및 접근 bfs, 백트래킹 1. 벽을 좀 더 효과적으로 세울 수 있는 알고리즘이 있을지 생각해본다. 2 . 없으면 벽을 일일이 세워보며 어디에 세웠을 때 안전 영역이 가장 클지 경우의 수를 따져보아야 한다. 3. 경우의 수를 따질 때는 파이썬 내장함수를 사용하는 법과 백트래킹이 있는데, 조건이 까다로운 경우 백트래킹을 사용한다. 4. 백트래킹을 사용해 빈 영역마다 벽을 세워보며 안전 영역이 얼마나 남는지 bfs()를 돌려본다. 5. bfs를 사용해도 되고, dfs를 사용해도 되지만, bfs를 선호해서 사용했다. 6. bfs 함수 내에서 바이러스를 퍼트리고 동시에 퍼트릴 때마다 cnt += 1 해주며 퍼트린 영역의 개수를.. 2023. 9. 25.
[백준] 8978 올림픽 (파이썬/python) 🎈문제 https://www.acmicpc.net/problem/8979 🎁알고리즘 및 접근 구현, 정렬 1. 금,은,동 메달 개수 순서로 정렬을 시켜놓은 뒤 2. 공동순위를 고려하여 순위를 매겨주면 되는 문제이다. 💻코드 # 8979 올림픽 # 입력 받기 n,k = map(int,input().split()) n_lst = [list(map(int,input().split())) for _ in range(n)] # 금,은,동 메달 개수 순서로 정렬 n_lst = sorted(n_lst,key=lambda x:(x[1],x[2],x[3]),reverse=True) # print(n_lst) rank = 1 # 순위 cnt = 0 # 같은 순위 카운트 pre = n_lst[0][1:] # 다음 순위와의 .. 2023. 9. 18.
[프로그래머스] 소수 찾기 (파이썬/python) 🎈문제 https://school.programmers.co.kr/learn/courses/30/lessons/42839 🎁어떤 알고리즘? 순열 경우의 수 문제를 보면 가장 먼저 itertools를 활용할 수 있는 단순한 문제인지, 조건이 까다로워서 백트래킹을 활용해야할 지 파악해야한다. 이 문제의 경우 permutations로 해결할 수 있는 단순한 문제였다. 코드 순서 1. permutations를 활용해 모든 경우의 수 찾기 2. 중복 제거하기 3. 만들어낸 숫자 중 소수 개수 찾기 -> 에라토스테네스의 체 활용 에라토스테네스의 체 소수를 찾는 문제의 경우 일반적으로 두 가지를 생각할 수 있다. 1) 13이라는 숫자가 소수인지 판별하는 문제 ( 하나의 소수를 판별하는 문제) 2) 13 미만의 숫자 .. 2023. 9. 13.