본문 바로가기
반응형

JavaScript71

[Javascript] 자료구조 - 스택(stack) 스택 : 먼저 들어온 데이터가 나중에 나가는 자료구조 새로운 원소를 삭제할 때는 마지막 원소가 삭제 전체 연산: 삽입 3 - 삽입 5 - 삭제 - 삽입 1 - 삭제 - 삽입 8 - 삽입 9 => 3, 8, 9 연산 시간 복잡도 설명 1 삽입(Push) O(1) 스택에 원소 삽입 2 추출(Pop) O(1) 스택에서 원소 추출 3 최상위 원소(Top) O(1) 스택의 최상위 원소 확인 4 Empty O(1) 스택이 비어 있는지 확인 Javascript 배열 자료형 - 일반적으로 스택을 구현할 때, Javascript의 배열 자료형을 사용 1. push() : 마지막 위치에 원소를 삽입, 시간 복잡도 O(1) 2. pop() : 마지막 위치에서 원소를 추출, 시간 복잡도 O(1) let stack = []; .. 2023. 11. 24.
[Javascript] 자료구조 - 배열(Array)과 리스트(List) 배열(Array) 가장 기본적인 자료구조 여러개의 변수를 담는 공간 배열은 인덱스(index)가 존재, 인덱스는 0부터 시작 특정한 인덱스에 직접 접근 가능 -> 수행시간: O(1) 배열의 특징 컴퓨터의 메인메모리에서 배열의 공간은 연속적으로 할당 장점: 캐시 히트 가능성이 높으며 조회가 빠르다. 단점: 배열의 크기를 미리 지정해야하는것이 일반적이므로, 데이터의 추가 및 삭제에 한계가 있다. 연결 리스트(Linked List) 연결 리스트는 컴퓨터의 메인 메모리상에서 주소가 연속적이지 않다. 배열과 다르게 크기가 정해져있지 않고, 리스트의 크기는 동적으로 변경 가능 장점: 포인터(pointer)를 통해 다음 데이터의 위치를 가리킨다는 점에서 삽입과 삭제가 간편하다. 단점: 특정 번째의 원소를 검색 할 때.. 2023. 11. 23.
[Javascript] 자료구조란 자료구조는 다수의 data를 담기 위한 구조로 데이터 수가 많아질수록 효율적인 자료구조가 필요하다 성능 비교: 자료구조/알고리즘의 성능 측정 방법에 대해 이해할 필요가 있음 1. 선형구조(Linear Data Structure) :: 하나의 데이터 뒤에 다른 데이터가 하나 존재하는 자료구조, 데이터가 일렬로 연속적으로 연결 - 배열 - 연결 리스트 - 스택 - 큐 2.비선형구조(Non-Linear Data Structure) :: 하나의 데이터 뒤에 다른 데이터가 여러 개 올수있는 자료구조, 데이터가 일직선상으로 연결되어있지 않아도 된다. - 트리 - 그래프 성능 측정 방법 시간 복잡도(Time complexity): 알고리즘에 사용되는 연산 횟수 측정 공간 복잡도(Space complexity) : 알.. 2023. 11. 23.
백준 - 1152번 단어의 개수 문제 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다. 출력 첫째 줄에 단어의 개수를 출력한다. 예제 입력 1 복사 The Curious Case of Benjamin Button 예제 출력 1 복사 6 예제 입력 2 복사 The first character is a blank 예제 출력 2 복사 6 예제 입력 3 복사 .. 2023. 11. 23.
백준 - 1316번 그룹 단어 체커 문제 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어의 개수 N이 들어온다. N은 100보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 단어가 들어온다. 단어는 알파벳 소문자로만 되어있고 중복되지 않으며, 길이는 최대 100이다. 출력 첫째 줄에 그룹 단어의 개수를 출력한다. 예제 입력 1 복사 3 happy new year 예제 출력 1.. 2023. 11. 23.
백준 - 2908번 상수 문제 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다. 상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다. 두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다. 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다. 출력 첫째 줄에 상수의 대답을 출력한다. 예.. 2023. 11. 23.
반응형