처음엔 combinations()을 이용하는 방법을 택했는데 역시나 시간초과(TLE)가 발생했다.질문게시판에 있는 그리디 알고리즘 설명을 보고 혹시나해서 하나의 테스트케이스를 만들어서 시도해봤는데 이 방법이 쉽게 떠오르는 사람들이 대단하다고 느꼈다.Sum ≥ weigh
큰 수와 작은 수를 번갈아가면서 뽑아주면 당연히 차이가 최대가 되지 않을까 싶어서 그대로 입력했더니 바로 WA를 받았다.이 문제의 알고리즘에 왜 자료 구조가 없었는지 정말 궁금했다.덱(deque)은 배열의 앞과 뒤에서 데이터를 처리할 수 있는 양방향 자료형이다.이 자료
2중 for문을 통해서 가장 긴 증가하는 부분 수열을 구하는 문제가 아니라 이분 탐색으로 탐색의 범위를 좁히는 방법으로 작성해야한다. 이분 탐색은 정렬이 된 데이터에 대해서만 수행이 가능하다고 알고 있었는데 이걸 어떻게 적용해야할지 몰라서 막막하다가 최장 증가 부분 수
대학교 알고리즘 강의 때 들었던 내용이 기억나서 수월하게 접근할 수 있었다.이 문제는 0-1 배낭 알고리즘에 관련된 동적 프로그래밍 문제로 모든 물건은 최대 한 개씩만 존재한다고 가정한다.냅색 알고리즘과 관련된 동적 프로그래밍 문제를 좀 더 풀어봐야겠다.뿐만 아니라 동
배열 A, B, C, D가 존재하는데 배열 A와 B를 합쳐서 A와 B의 원소를 더해서 딕셔너리에 먼저 저장하고 그 다음 배열 C와 D의 원소를 이중 반복문으로 가져와 합한 값이 딕셔너리에 존재하는지 확인하는 방법을 이용했다.A\[a] + B\[b] + C\[c] + D
발전소들을 Union시켜서 하나의 집합으로 만들어준다.💡소요시간 : 34m
N(1 ≤ N ≤ 1,000)개의 컴퓨터로 구성된 네트워크가 있다. 이들 중 몇 개의 컴퓨터들은 서로 네트워크 연결이 되어 있어 서로 다른 두 컴퓨터 간 통신이 가능하도록 되어 있다. 통신을 할 때에는 서로 직접 연결되어 있는 회선을 이용할 수도 있으며, 회선과 다른
\[백준 1967번 트리의 지름] 문제와 동일한 유형의 문제다. 다만 입력값을 받는 방식에서만 차이가 존재한다. DFS or BFS 둘 다 풀이가 가능하지만 BFS로 풀었다.💡소요시간 : 17m