[BOJ/백준] 14907 프로젝트 스케줄링 - 파이썬
·
💻 알고리즘/PS
문제 https://www.acmicpc.net/problem/14907 문제풀이 위상정렬 문제 입력이 특이해서 신경써줘야하는 문제 INPUT을 기준으로 for문을 돌렸으며 개행만 들어올 시 break 하도록 해주었다. 또 알파벳이 입력으로 들어오기때문에 index로 활용하기 위해 ord 변환 해주었다. 알고리즘은 보통의 위상정렬 문제와 크게 다를 것이 없으나, result를 구할 때 max 함수로 모든 작업이 끝날때의 시간을 구해줌 코드 import sys input=sys.stdin.readline ##위상정렬 res=[0]*(26) graph=[[] for _ in range(26)] indegree=[0]*(26) time=[0]*(26) for INPUT in sys.stdin: if INPUT..
[BOJ/백준] 1043 거짓말 - 파이썬
·
💻 알고리즘/PS
문제 진실을 알고 있는 사람이 파티에 오는 경우, 진실을 알고 있는 사람과 같은 파티에 왔던 사람이 다른 파티에 오는 경우, 거기에 있는 다른 사람이 참석하는 또 다른 파티의 경우 등이 존재하는 상황에서 지민이가 과장된 이야기를 할 수 있는 파티 수의 최댓값을 구하는 문제. 문제풀이 Union-Find 알고리즘으로 풀이 지민이가 과장된 이야기를 할 수 없는 사람들을 하나의 집합으로 구성 ffind 함수로 해당 원소의 parent 원소를 찾는다. union 함수로 진실을 아는 사람들과 그와 같이 파티에 오는 사람들(연쇄적)을 하나로 묶는다. - 입력받은 두 원소가 모두 진실을 아는 사람 -> 변화 X - 둘 중 한 원소가 진실을 아는 사람 -> 진실을 아는 사람을 부모로 갱신 - 둘 다 진실을 아는 사람이..
[BOJ/백준] 9742 순열 - 파이썬
·
💻 알고리즘/PS
문제 https://www.acmicpc.net/problem/9742 9742번: 순열 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 문자열은 서로 다른 숫자와 알파벳으로 이루어져 있으며, 길이는 최대 10이다. 또한, 사전 www.acmicpc.net 문제풀이 bruteforce 문제 -찾고자 하는 순서가 문자열의 팩토리얼 값 보다 클 때, no permutation 출력 -그렇지 않은 경우 solve함수 재귀적으로 호출 solve 함수 문자열의 길이가 입력받은 문자열과 같고, 원하는 순서의 문자열일때까지 반복한다. solve(s+k,i+1) 으로 문자를 추가하고 문자열 길이를 늘려주면서 재귀적으로 호출 코드 import sys input=sy..
[BOJ/백준] 2160 그림비교 - 파이썬
·
💻 알고리즘/PS
문제 https://www.acmicpc.net/problem/2160 2160번: 그림 비교 N(2 ≤ N ≤ 50)개의 그림이 있다. 각각의 그림은 5×7의 크기이고, 두 가지 색으로 되어 있다. 이때 두 가지의 색을 각각 ‘X’와 ‘.’으로 표현하기로 하자. 이러한 그림들이 주어졌을 때, 가장 비 www.acmicpc.net 문제풀이 간단한 bruteforce 문제이다. 입력받은 그림을 하나씩 비교해서 각 원소가 같은 값인지 아닌지 확인한다. 가장 비슷한 두 그림(값이 다른 원소가 최소인 그림 두가지)의 번호를 출력한다. 코드 import sys input=sys.stdin.readline n=int(input()) pic=[] for i in range(n): pic.append(list([inp..