목록자료구조 (6)
study
문제) 풀이 1) 리스트의 첫 번째 값만 answer에 추가하고 continue 구문을 통해 건너 뜁니다 그리고 answer리스트랑 arr(리스트)을 비교해서 다를때만 값을 추가해주어 연속 숫자를 생략하고 있는 구조입니다 풀이 2) 빈 리스트에서도 슬라이싱이 가능하다는 점을 참고하시면 될 것 같습니다
문제) 풀이) 풀이과정에서 리스트를 역순으로 변환하지 않고 계산하는 이유는 45(십진법)는 1200(3진법)이며 역순으로 변환하면 0021이 된다 하지만 리스트에서 계산할 때 1부터 시작하기 때문에 역순으로 계산되는 결과와 동일하다 본 문제에서 배울 부분은 두 가지라고 생각됩니다 1. n_list.insert(0, n%3)을 통해 3진법으로 변환한 부분 2. for i in n_list 구문을 통해 3진법을 10진법으로 계산한 부분 125(십진법)를 11122(삼진법)로 변환 후 10진법으로 계산하는 과정을 구체적으로 표시한 부분입니다 n_list 1 1 1 2 2 answer 1 4 13 67 229 stnd 3 9 27 81 243
문제 - 숫자 카드 게임 : 숫자 카드 게임은 여러 개의 숫자 카드 중에서 가장 높은 숫자가 쓰인 카드 한 장을 뽑는 게임이다. 단, 게임의 룰을 지키며 카드를 뽑아야 하고 룰은 다음과 같다 1. 숫자가 쓰인 카드들이 N x M 형태로 놓여 있다. 이때 N은 행의 개수를 의미하며, M은 열의 개수를 의미한다. 2. 먼저 뽑고자 하는 카드가 포함되어 있는 행을 선택한다. 3. 그다음 선택된 행에 포함된 카드들 중 가장 숫자가 낮은 카드를 뽑아야 한다. 4. 따라서 처음에 카드를 골라낼 행을 선택할 때, 이후에 해당 행에서 가장 숫자가 낮은 카드를 뽑을 것을 고려하여 최종적으로 가장 높은 숫자의 카드를 뽑을 수 있도록 전략을 세워야 한다. 예를 들어 3 x 3 형태로 카드들이 다음과 같이 놓여 있다고 가정하..
문제 : 큰 수의 법칙 - 다양한 수로 이루어진 배열이 있을 때 주어진 수들을 M번 더하여 가장 큰 수를 만드는 법칙이다. 단 배열의 특정한 인덱스(번호)에 해당하는 수가 연속해서 K번을 초과하여 더해질 수 없다. 예를 들어 [2. 4. 5. 4. 6]으로 이루어진 배열이 있을 때 M이 8이고 K가 3이라고 가정하자 이 경우 특정한 인덱스의 수가 연속해서 세 번까지만 더해질 수 있으므로 큰 수의 법칙에 따른 결과는 6 + 6 + 6 + 5 + 6 + 6 + 6 + 5인 46이 된다. 단 서로 다른 인덱스에 해당하는 수가 같은 경우에도 서로 다른 것으로 간주한다. 예를 들어 순서대로 3,4,3,4,3으로 이루어진 배열이 있을 때 M이 7이고, K가 2라고 가정하자. 이 경우 두 번째 원소에 해당하는 4와 ..
그리디 알고리즘 : 어떠한 문제가 있을 때 단순 무식하게, 탐욕적으로 문제를 푸는 알고리즘이다. 여기서 탐욕적이라는 말은 현재 상황에서 지금 당장 좋은 것만 고르는 방법을 의미한다. 그리디 알고리즘을 이용하면 매 순간 가장 좋아 보이는 것을 선택하며, 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않는다. 예제 - 거슴름돈 당신은 음식점의 계산을 도와주는 점원이다. 카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 무한히 존재한다고 가정한다. 손님에게 거슬러 줘야 할 돈이 N원일 때 거슬러줘야 할 동전의 최소 개수를 구하라, 단 거슬러 줘야 할 돈 N은 항상 10의 배수이다. 문제 해설 이 문제는 그리디 알고리즘을 이용해 풀 수 있는 대표적인 문제로 간단한 아이디어만 떠..
복잡도 : 알고리즘의 성능을 나타내는 척도로 시간 복잡도와 공간 복잡도로 나눌 수 있다. 1. 시간 복잡도 : 알고리즘을 위해 필요한 연산의 횟수, 즉 얼마나 오래 걸리는지를 의미한다 2. 공간 복잡도 : 알고리즘을 위해 필요한 메모리의 양 시간 복잡도와 공간 복잡도의 경우 trade off 관계로 시간 복잡도가 낮아지면 공간 복잡도가 높아지는 또는 반대의 경우가 성립한다 시간 복잡도 1) Big-O(빅오 표기법) : 알고리즘의 표기법 중 하나로 실행 시간의 상한을 나타내는 표기법이다. - A : 가위바위보 게임에서 이기면 1000원 지면 100원을 받을 수 있는 경우 - B : 가위바위보 게임에서 이기면 800원 지면 300원을 받을 수 있는 경우 위의 두 가지 경우 최악의 경우 A는 100원의 수익이..