매일매일
알고리즘 연습문제
CS/알고리즘 2023. 4. 8. 09:43

5. [중복순열] 가위바위보 가위바위보 게임은 2인 이상의 사람이 동시에 '가위, 바위, 보'를 외치고 동시에 가위, 바위 또는 보 중에서 한 가지를 의미하는 손 모양을 내밀어 승부를 결정짓는 게임입니다. 세 판의 가위바위보 게임을 할 경우, 한 사람은 세 번의 선택(예. 가위, 가위, 보)을 할 수 있습니다. 세 번의 선택으로 가능한 모든 경우의 수를 구하는 함수를 작성합니다. 입력 없음 출력 - 2차원 배열(arr[i])을 리턴해야 합니다. - arr[i]는 전체 경우의 수 중 한 가지 경우(총 세 번의 선택)를 의미하는 배열입니다. - arr[i]는 'rock', 'paper', 'scissors' 중 한 가지 이상을 요소로 갖는 배열입니다. - arr[i].length는 3 주의사항 최종적으로 리..

article thumbnail
알고리즘 연습문제
CS/알고리즘 2023. 4. 5. 23:42

1. [Greedy] 짐 나르기 김코딩과 박해커는 사무실 이사를 위해 짐을 미리 싸 둔 뒤, 짐을 넣을 박스를 사왔다. 박스를 사오고 보니 각 이사짐의 무게는 들쭉날쭉한 반면, 박스는 너무 작아서 한번에 최대 2개의 짐 밖에 넣을 수 없었고 무게 제한도 있었다. 예를 들어, 짐의 무게가 [70kg, 50kg, 80kg, 50kg]이고 박스의 무게 제한이 100kg이라면 2번째 짐과 4번째 짐은 같이 넣을 수 있지만 1번째 짐과 3번째 짐의 무게의 합은 150kg이므로 박스의 무게 제한을 초과하여 같이 넣을 수 없다. 박스를 최대한 적게 사용하여 모든 짐을 옮기려고 합니다. 짐의 무게를 담은 배열 stuff와 박스의 무게 제한 limit가 매개변수로 주어질 때, 모든 짐을 옮기기 위해 필요한 박스 개수의 ..

빅오 표기법 (Big O Natation)
CS/알고리즘 2023. 3. 28. 02:13

빅오 표기법 좋은 코드를 판단할 때는 여러가지 기준이 있을 수 있지만 빅오 표기법은 객관적이며 변하지 않는 기준으로 코드의 효율성을 비교하기위한 표기법이다. 시간 복잡도과 공간 복잡도를 나타나는데 주로 사용된다. 시간 복잡도 알고리즘이 얼마나 빠르게 실행하지를 나타낸다. 이름은 시간 복잡도이지만 실제 코드가 실행되는 시간을 기준으로 하지 않고 연산 갯수를 기준으로 판단한다. 왜냐라면 시간은 가변적이기 때문이다. 시간은 컴퓨터의 사양에 따라서 변할수도 있고 심지어 같은 컴퓨터에서도 실행할 때마다 시간이 조금씩 바뀐다. 반면 연산 갯수는 어떤 컴퓨터에서든 동일하기 때문에 연산 갯수를 기준으로 판단한다. 연산 갯수 연산 갯수는 정확한 연산 갯수를 의미하진 않고 단순화한 갯수를 의미한다. 예를 들어 아래의 함수..