본문 바로가기
반응형

자료구조10

0. 자료구조란? 자료구조? 자료구조(Data Structure)는 데이터를 효율적으로 관리할 수 있도록 만든 데이터의 구조를 말한다. 데이터의 효율적인 접근과 변경을 위한 방법이기 때문에 알고리즘을 배우기 전에 무조건적으로 선행하여 학습해야하는 컴퓨터 과학 학문이다. 메모리는 1차원 구조이기 때문에, 세상 속에 존재하는 다차원 구조의 데이터를 메모리에 맞게 1차원으로 표현하는 방법을 학습한다.  데이터의 저장과 접근을 효율적으로 하기 위해서 자료구조는 매우 중요하다. 적절한 구조를 사용하면 알고리즘의 성능을 크게 향상시킬 수 있으며, 잘못된 구조를 선택하면 프로그램의 성능이 저하될 수 있다. 따라서 자료구조를 깊이 이해하고 상황에 맞게 활용하는 능력은 모든 소프트웨어 개발자에게 필수적이다. 예를 들어, 데이터 검색이 빈.. 2024. 6. 26.
[Python] 백준 21608: 상어 초등학교 solved.ac 기준 Gold5 구현 문제의 핵심은 지문을 잘 이해해서 풀이 속도를 높이는 것이다. 그래서 국어 비문학 문제와 같기도 하다. 사실 특별한 기술을 요하는 것이 없고, 어떻게든 풀 수 있게 나오기 때문에, 글에 나와있는 규칙을 이해하고, 코드로 옮기는 과정을 빠르게 해야한다. 그래서 이 문제처럼 긴 지문이 나오면 덜커덕 겁이 나기도 하지만, 세심하게 읽으면서 구조를 짠다. 한 3~4분은 키보드 안잡고 문제를 보며 구조를 생각하는 습관을 들이자. 문제 상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호가 매겨져 있고, (r, c)는 r행 c열을 의.. 2024. 4. 13.
[Python] 백준 1325: 효율적인 해킹 실버1~2 문제를 손풀기 겸 뇌 깨우기로 계속해서 풀고 있다. 한창 백준 티어 끌어올리기 할 때 만큼 빠르지는 않지만 문제 해석 능력과 자료구조, 알고리즘 적용 감각이 돌아오고 있는 것이 느껴저 좋다. 이번 문제는 간단하게 그래프를 사용하여 풀 수 있는 문제이다. 문제 해커 김지민은 잘 알려진 어느 회사를 해킹하려고 한다. 이 회사는 N개의 컴퓨터로 이루어져 있다. 김지민은 귀찮기 때문에, 한 번의 해킹으로 여러 개의 컴퓨터를 해킹 할 수 있는 컴퓨터를 해킹하려고 한다. 이 회사의 컴퓨터는 신뢰하는 관계와, 신뢰하지 않는 관계로 이루어져 있는데, A가 B를 신뢰하는 경우에는 B를 해킹하면, A도 해킹할 수 있다는 소리다. 이 회사의 컴퓨터의 신뢰하는 관계가 주어졌을 때, 한 번에 가장 많은 컴퓨터를 해킹.. 2024. 4. 7.
[Python] 백준 1021번: 회전하는 큐 자료구조의 사용과 함께 알고리즘 풀이에 자주 쓰이는 데크를 푸는 것을 다시 깨우치기 위해 쉬운 문제부터 시작했다. 이 문제는 큐의 회전하는 성질이 데크와 맞닿아 있다. 회전을 pop을 하면서 반대편에 다시 append해주는 방식으로 구현하면 편리하다. 문제 지민이는 N개의 원소를 포함하고 있는 양방향 순환 큐를 가지고 있다. 지민이는 이 큐에서 몇 개의 원소를 뽑아내려고 한다. 지민이는 이 큐에서 다음과 같은 3가지 연산을 수행할 수 있다. 첫 번째 원소를 뽑아낸다. 이 연산을 수행하면, 원래 큐의 원소가 a1, ..., ak이었던 것이 a2, ..., ak와 같이 된다. 왼쪽으로 한 칸 이동시킨다. 이 연산을 수행하면, a1, ..., ak가 a2, ..., ak, a1이 된다. 오른쪽으로 한 칸 이동.. 2024. 4. 6.
반응형