inflearn logo
강의

Course

Instructor

The Basics of CS Knowledge | Design Patterns Network Operating System Database Data Structure

로또번호 7개 셔플 자료구조 설명에서 설명에 대한 질문

184

lalalabs01

1 asked

0

안녕하세요 로또번호 셔플 구현 설명에서 로또번호에 필요한 로직은 "탐색"과 스왑이라고 되어있고,

플로우에서도 탐색이 O(1)인 배열을 사용해야한다고 설명이 되어있더라구요

근데 배열으 탐색이 O(n)이고, 구현 코드를 봐도 배열값을 참조해서 스왑핑 하는 내용이더라구요

그래서 설명이 탐색이 아닌 참조가 맞지않을까 생각했습니다.

혹시 제가 잘못이해한거라면 답변 부탁드립니다!

자료구조

Answer 1

1

kundol

안녕하세요 ㅎㅎ

네 수강생님 말씀이 맞습니다 ㅠㅠ 탐색이 아니라 참조인데... 죄송합니다.

 

수정된 부분은 다음과 같습니다.

로직

로또번호 7개 셔플에 필요한 로직은 딱 두가지 참조와 swap입니다. 7개의 수 중 자유롭게 랜덤적으로 2개의 수를 참조하고 그 2개의 수를 swap하는 로직이 필요합니다.   

플로우

즉 이는 다음과 같은 플로우를 기반으로 배열이란 자료구조를 사용해야 한다는 답을 갖게 됩니다. 

  1. 삽입이나 삭제가 필요하지 않습니다. 

  2. 로또번호는 순차적으로 구성되어있기 때문에 이에 관한 자료구조는 배열, 연결리스트가 있습니다. 

  3. 스택과 큐를 생각할 수 있지만 자유로이 랜덤적으로 2개를 참조해 swap을 해야하고 이 때문에 랜덤접근이 불가능한 자료구조는 배제하게 됩니다. 

이중에서 참조(random access)에 O(1)인 배열을 사용하는 것이 좋습니다.

 

 

이부분은 제가 이번주내로 수정하여 수정업로드를 하도록 하겠습니다.

제 틀린 부분을 지적해주셔서 정말 감사를 드립니다.

강사 큰돌 올림.

 

자료구조 공부 언어

0

76

1

동기화와 Queue

0

88

1

시간복잡도 계산 시 1회 연산당 연산량은 왜 고려하지 않는 건가요?

1

147

2

2:37초 질문입니다.

0

102

2

HashSet과 HashMap 메소드의 시간 복잡도에 대해 여쭤봅니다.

0

228

1

맵(Map) 시간복잡도 질문

0

155

2

비선형 자료구조

0

308

1

[질문은 아니고 해결법&코드 공유] deque로 풀어봤어요!

0

304

1

Linked list의 장점

1

652

1

c++ 자료구조 문제 질문

0

155

0

자료구조 수열의 n번째 항을 구하는 재귀알고리즘 작성

0

385

0

리스트를 만드는 방법

0

275

1

Queue 자료구조 사용시 시간초과 문제

1

389

1

오름차순 정렬 시

0

320

1

초보주의: 어셈블리어로 길이 제한 없는 문자열을 표현할 수 있는 법이 뭐가 있을까요

0

180

0