처음 시도한 방법은 조합이었다. 만능이라고 생각했던 combinations를 이용해서 가장 큰 수를 만드는 코드를 작성했는데 이 방법은 시간초과(TLE)가 발생했다. 두 번째로 시도한 방법은 그리디였다. 입력받은 수 중에서 숫자의 길이가 가장 긴 수에 맞춰 나머지 수들
이전에 포스팅했던 \[백준 9019번 DSLR]과 거의 비슷한 유형의 문제였다.N은 20000보다 작거나 같은 자연수이므로 방문 여부 배열의 크기를 20,000으로 잡아준다.큐에 현재 숫자, 만들어진 숫자(문자열 형태) 형태로 넣어주면서 0 혹은 1을 하나씩 붙여나가면
이전에 포스팅했던 \[백준 9019번 DSLR]과 거의 비슷한 유형의 문제였다.N은 20000보다 작거나 같은 자연수이므로 방문 여부 배열의 크기를 20,000으로 잡아준다.큐에 현재 숫자, 만들어진 숫자(문자열 형태) 형태로 넣어주면서 0 혹은 1을 하나씩 붙여나가면
P원 지폐와 Q원 지폐 중에서 액면가가 더 높은 지폐를 이용해서 내야 하는 D원 이상의 최소 금액을 구한 다음 P원과 Q원 중 상대적으로 액면가가 높은 지폐의 수를 감소시키면서 액면가가 낲은 지폐의 수를 늘려 D원 이상의 최소 금액을 구했다.💡소요시간 : 2h
처음엔 문제 그대로 버블 정렬을 구현하여 Swap이 발생할때마다 Swap 횟수를 카운트하는 방식으로 코드를 작성했는데 시간초과(TLE)가 발생해서 질문게시판의 내용을 참고했다. 버블 정렬은 O(N^2) 시간복잡도를 가지는데 이걸 그대로 사용한다면 시간초과가 발생하는게
💡문제접근 💡코드 💡소요시간 : 1h
두 행성을 연결할 때 드는 비용을 계산할 때 2중 for문을 이용해서 코드를 작성했는데 이 부분때문에 메모리 초과가 발생한 것 같다.💡소요시간 : 1h
다익스트라 알고리즘과 플로이드-워셜 알고리즘 두 가지 알고리즘 중 플로이드-워셜 알고리즘을 선택했고 모든 정점에서 각각의 정점으로 갈 수 있는 최단거리를 2차원 리스트에 저장했다.그런 다음 for문을 이용해서 1 ~ N번까지의 각각의 발화 경우를 모두 비교하여 어떤 점
Python 이분 탐색 라이브러리인 bisect를 이용해서 문제를 쉽게 해결할 수 있었다.이 때, 민수는 철수가 낼 카드보다 큰 카드가 있다면 그 카드들 중 가장 작은 카드를 내는데 만약 동일한 카드가 존재한다면 인덱스의 값을 하나씩 증가시켜 중복을 피해야 한다.💡소