목록자료구조 (5)
NOW OR NEVER
프로그래머스 폰켓몬 문제당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다.첫 번째(3번), 두 번째(1번) 폰켓몬을 선택첫 번째(3번), 세 번째(2번) 폰켓몬을 ..
자료구조 메모리를 효율적으로 사용하며 빠르고 안정적으로 데이터를 처리하는 것이 궁극적인 목표로 상황에 따라 유용하게 사용될 수 있도록 특정 구조를 이루고 있다. 특성 상황에 유용하다는 것은 역으로 잘못 사용할 경우 메모리를 비효율적이며 느리고 불안정적으로 데이터를 처리할 수 있다는 것이다. 전산화 작업 예시(현실에 존재하는 영화 예매를 어떻게 컴퓨터로 옮길까?) 소프트웨어 개발자가 하는 일은 거의 전산화 작업이다. 현실에서 수행되는 프로세스: 고객은 어떤 영화를 볼지 고른다 -> 고객은 영화를 예매하기 위해 줄을 선다 -> 고객은 차례가 왔을 때 좌석을 선택한다. -> 고객은 최종적으로 돈을 지불한다. 위 프로세스를 소프트웨어에서 어떻게 처리하는가 영화 검색 : 빠르게 검색하고 자동완성 기능을 제공하기 ..
자료구조와 알고리즘이란? 프로그래밍은 요리와 비슷하다(요리 : 재료선택-도구선택-레시피-요리완성) 재료 : 데이터 도구 : 자료구조 레시피 : 알고리즘 요리 : 소프트웨어 요리사 : 개발자 요리를 먹는 손님 : 소프트웨어를 이용하는 이용자 자료구조 + 알고리즘 = 프로그램 자료구조 메모리를 효율적으로 사용하며 메모리를 빠르고 안정적으로 데이터를 처리하는 것이 궁극적인 목표이다. 구조들은 상황에 따라 유용하게 사용될 수 있도록 만들어져 있다. 그래서 어떤 상황에서는 느리고 불안정적일 수 있다. 상황에 맞는 올바른 자료구조를 선택할 수 있는 능력이 필요하다 stack, queue, graph, tree 등이 해당된다. 알고리즘 특정 문제를 효율적이고 빠르게 해결하는 것이 궁극적인 목표이다. 정해진 일련의 절..

Array 배열 자료 구조란? 일상생활에서 비슷한 것들만 모아서 각 바구니에 모아놓는 것처럼 프로그래밍 언어에서도 비슷한 종류의 데이터들을 묶어서 한 곳에다가 보관해놓는 것들을 자료구조라고 한다. 자료구조에는 어떤 방식으로, 어떤 형식으로 데이터를 담느냐에 따라서 굉장히 다양한 타입들이 있다. object와 자료구조의 차이점 object는 서로 연관된 특징과 또는 행동들을 묶어놓는 것을 말한다. 자료구조는 비슷한 type의 objec들을 묶어놓는 것을 말한다. js가 아닌 다른 언어에서는 보통 자료구조에는 동일한 type의 object를 담을 수만 있다. 즉 type이 있는 언어에서는 동일한 type의 데이터만 담을 수 있다. js는 dynamically typed language이기에 type이 동적으..
파이썬 자료구조(List, Tuple) - 정말 잘 알아야 능수능란하게 할 수 있고 적재적소로 활용 가능 - 기초 자료형 중 데이터를 담을 수 있는 한곳에 모아서 처리할 수 있는 데이터 타입 - 많은 변수를 사용하는 것은 비효율적이다. 코드도 많이 써야하고 수정사항이나 삭제사항을 다 찾아서 일일이 다 지워야 하는 번거로움이 있다. 코드 변경시 효율적이지 못하므로 자료구조를 활용해야 한다. 1. List 리스트 - 그릇이라 생각 하면 됨 - 배열(숫자의 모음, 학생의 모음 등) - 순서가 있고 중복도 되며 수정도 가능하고 삭제도 가능해서 dictionary와 더불어 가장 많이 쓰는 데이터 타입 - 선언방식 -> 리스트 안에 리스트도 가능 -> 타입이 다른 데이터 같이 선언가능 ->변수=[ ], 변수=lis..