목록프로그래밍 기초/Data structure & Algorithm (20)
Groo
안녕하세요, 오늘 글을 끝으로 자료구조와 알고리즘 파트의 기초 개념 설명을 모두 마무리하려고 합니다. 마지막으로 알아볼 자료구조는 해시이며 양이 많지도 않고 크게 어렵지 않기 때문에 힘을 내서 공부해봅시다. 🔐 해시법이란? 해시법은 배열 속에 데이터를 저장할 위치를 간단한 연산으로 구하는 방법으로 검색뿐만 아니라 추가, 삭제도 효율적으로 수행할 수 있습니다. 아래의 그림에서 가장 위에 위치한 배열의 키 값인 배열 속 각각의 요소 값을 배열의 요솟수 13으로 나눈 후 나머지를 표로 정리하면 중간에 위치한 표와 같게 됩니다. 이렇게 표에 정리한 값을 해시 값이라고 하며 이러한 과정을 해시 함수라고 합니다. 그리고 이 해시 값이 기존의 배열 속 키 값들의 새로운 인덱스가 되도록 수정한 것이 아래의 그림 속 가..
안녕하세요, 오늘은 저번 시간에 이어서 새로운 자료구조에 대해서 알아봅시다. 오늘 배워볼 자료구조는 트리이며 이는 내용이 꽤 재미있으므로 지루하지 않을 것입니다. 🏕 트리란? 저번 시간에 배운 리스트는 데이터를 순서대로 나열하는 자료구조였지만 오늘 배워볼 트리는 데이터 사이의 계층 관계를 나타내는 자료구조입니다. 예를 들면 족보와 같이 일정한 규칙에 따라 데이터를 계층적으로 나타내는 것이라고 할 수 있습니다. 그럼 먼저 트리 자료구조에 대해서 알아보기 전 트리와 관련된 용어들을 살펴보도록 하겠습니다. 아래의 트리 구조를 참고하면서 글을 읽어주세요. 노드와 가지 : 트리의 구성 요소이며 각각의 노드는 가지를 통해 다른 노드와 연결되어 있습니다. 루트 : 트리의 가장 윗부분에 위치하는 노드이며 하나의 트리에..
안녕하세요, 오늘은 정말 오랜만에 새로운 자료구조에 대해서 알아보려고 합니다. 그것은 바로 리스트 자료구조이며 프로그래밍에서 정말 중요한 개념 중 하나입니다. 📊 리스트란? 간단히 설명하면 리스트는 데이터를 순서대로 나열한 자료구조입니다. 여러분들이 프로그래밍을 할 때 자주 사용하는 배열을 예로 들 수 있습니다. 같은 자료형을 가진 여러 개의 값을 저장하기 위해 변수를 일일이 생성하지 않고 배열이라는 곳에 데이터를 순서대로 저장할 수 있는 것처럼 말이죠. 또한 Java에서 자주 사용하는 ArrayList 또한 리스트 자료구조의 개념을 바탕으로 만들어졌습니다. int[] arr = new int[7]; ArrayList arrayList = new ArrayList(); 이처럼 리스트는 프로그래밍을 할 때..
안녕하세요, 오늘은 저번 시간에 이어서 계속 코딩 테스트 연습 문제를 풀이해보도록 하겠습니다. 이번에 풀이할 문제는 2019 카카오 블라인드 채용에서 출시되었던 문제이니 꽤 난이도가 있습니다. 📚 문제 설명 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프렌즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 사이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 실패율의 공식은 (스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도..