본문 바로가기
활동/이노베이션 캠프

[TIL] 230707 - CS 스터디 질문 제출, Lv.3 과제 진행, JS스터디

by gardenii 2023. 7. 8.

오늘 한 일

- CS 스터디 질문 제출

- Lv.3 과제 진행

- JS 스터디

- CS 스터디 알고리즘 풀이

- 깃허브 레포 합치기


CS 스터디 질문

키워드 1 : 자료의 표현 

1. 질문 : ASCII와 유니코드&UTF-8에 대해 서술해주세요.

아스키코드 (ASCII)는 영문 알파벳과 일부 특수문자를 표현하기 위한 7비트 인코딩 방식입니다. 유니코드는 전 세계 모든 문자를 표현하기 위한 코드 체계입니다. UTF-8은 유니코드를 인코딩하는 방식 중 하나이며, 아스키 코드와 유니코드 문자를 호환 하면서 효율적인 인코딩을 제공합니다.

 

1-1. 꼬리질문 : 위의 인코딩 방식이 사용 되는 예시에 대해 설명해주세요.

아스키 코드는 이메일 주소와 파일명에서 사용 되고, 유니코드는 멀티언어 문서 및 웹 페이지에서 사용됩니다. UTF-8은 인터넷 통신 및 데이터 저장에 사용 되고 있습니다.

 

1-1-1. 꼬리질문 : 현재 가장 많이 사용 되는 인코딩 방식은 무엇인가요?

UTF-8입니다. (현재 인터넷 표준으로 사용됨) 그 이유는 멀티언어 지원, 하위 호환성, 효율적인 인코딩 등이 있습니다.


2. 질문 : 실수 표현 방식(고정 소수점, 부동 소수점)에 대해 설명해주세요.

답변 : 고정 소수점 방식은 소수점이 고정된 형태로 소수점을 기준으로 정수부, 소수부를 나누어 표현하는 방식입니다. 부동 소수점 방식은 지수부와 가수부로 구분하여 표기하는 방식입니다.

 

2-1. 꼬리질문 : 각 방식의 장단점을 설명해주세요.

답변 : 고정 소수점 방식은 단순하고 속도가 빠릅니다. 하지만 많은 양의 수를 표현하기 어렵고, 정밀해질수록 오차가 발생합니다.

부동 소수점 방식은 고정 소수점 방식에 비해 좀 더 넓은 범위를 표현할 수 있고, 비트 수 대비 정밀도 측면에서 높습니다. 하지만 상대적으로 느리고, 결국에는 근사값을 사용하기 때문에 정밀도를 해결할 수 없습니다.

키워드 2 : 자료 구조

1. 질문 : 선형과 비선형 자료구조의 차이점에 대해 설명해주세요.

선형 자료구조는 저장하는 순서대로 데이터가 저장되고, 비선형 자료구조는 규칙에 따라 데이터가 저장되는 것이 차이점입니다.

 

1-1. 꼬리질문 : 대표적인 자료구조는 무엇이 있는지 설명해주세요.

선형 자료구조에는 대표적으로 배열, 연결리스트, 스택, 큐가 있고, 비선형 자료구조에는 트리와 그래프가 있습니다.

 

1-1-1. 꼬리질문 : (같은 선형 자료구조에 속하는) 배열과 연결리스트의 차이점과 장단점은 무엇인가요?

배열은 RandomAccess가 가능해서 속도가 빠릅니다. (찾고자 하는 원소의 인덱스를 알고 있으면 해당 원소에 접근 가능) 단점으로는 삽입 또는 삭제 과정에서 각 원소들을 shift 해주는 비용이 있어서 시간 복잡도가 O(n)이 될 수도 있습니다. 연결 리스트는 자기 자신 다음에 어떤 원소가 있는지 알고 있어 이 부분만 다른 값으로 바꿔주면 삽입과 삭제를 0(1)로 해결 할 수 있습니다. 단점으로는 원하는 위치에 한번에 접근할 수 없습니다.

 

[정리]

차이점

  • 인덱스 유무 (배열 O, 연결 리스트 X)

장단점

  • 배열
    • 장점: 검색 속도 빠름
    • 단점: 삽입 및 삭제 느림
  • 연결 리스트
    • 장점: 삽입 및 삭제 빠름
    • 단점: 검색 속도 느림

2. 질문 : 해시 테이블에 대해 설명해주세요.

해시 테이블은 (Key, Value)로 데이터를 저장하는 자료구조 중 하나로 빠르게 데이터를 검색할 수 있는 자료구조입니다.

 

2-1. 꼬리질문 : 어떻게 빠른 속도로 검색할 수 있나요?

해시 테이블은 해싱 함수를 통해 직접적으로 배열의 인덱스를 계산할 수 있기 때문에 해당 키에 대한 데이터 위치를 일관성있게 찾을 수 있습니다.

 

2-1-1. 꼬리질문 : 해시 테이블에 대한 단점은 없는 건가요?

해시 테이블은 서로 다른 키가 동일한 인덱스로 해시될 수 있는 충돌이 발생할 수 있습니다. 이를 해결하기 위해 추가적인 해시 함수의 설계와 메모리 공간이 필요할 수 있습니다.


3. 스택과 큐의 구조에 대해 각각 설명해주세요.

스택과 큐는 모두 선형 자료구조에 속하고, 배열과 연결리스트를 통해 구현할 수 있습니다. 스택은 나중에 들어간 데이터가 먼저 나오는 LIFO(Last In First Out, 후입 선출) 형태의 구조를 가지고 있고, 큐는 먼저 들어간 데이터가 먼저 나오는 FIFO(First In First Out, 선입 선출) 형태의 구조를 가지고 있습니다.

 

3-1. 꼬리질문 : 각각의 특징에 따라 사용되는 예시를 알려주세요.

스택은 데이터를 일시적으로 쌓아두고 위에서부터 다시 빼내는 형태이기 때문에 함수를 호출할 때 함수 내부에서 사용되는 변수들을 저장해두기 위해 사용하거나, 수식에서 괄호를 계산하는 경우, 웹 브라우저에서 방문한 웹 페이지를 저장하여 이전 페이지로 돌아가는 경우 등에서 사용됩니다.

큐는 데이터를 들어온 순서대로 처리하고 내보내기 때문에 먼저 들어온 작업을 먼저 처리하도록 하는 스케쥴링 작업에서 쓰이거나 대기열 관리, 캐시 메모리에서 오래된 데이터를 먼저 삭제하는 경우 등에 사용합니다.

 

3-1-1. 꼬리질문 : 스택과 큐 두 가지의 장점을 합친 자료구조에는 어떤 것이 있는지 설명해주세요. (덱)

덱은 스택, 큐와 달리 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료구조입니다. 두 자료구조의 기능을 모두 가지고 있기 때문에 선입선출, 후입선출 모두 가능하며 스택과 큐에 비해 다양하게 응용하여 사용할 수 있습니다.


깃허브 레포 합치기 

https://backendcode.tistory.com/271#article-2--%EC%97%AC%EB%9F%AC-repository%EB%A5%BC-%EC%A0%80%EC%9E%A5%ED%95%A0-%EC%83%88%EB%A1%9C%EC%9A%B4-repository%EB%A5%BC-%EC%83%9D%EC%84%B1%ED%95%98%EC%9E%90-

 

[Git] GitHub 여러 Repository 합치기 간단 총 정리

이번 글에서는 이전에 생성하였던 여러 Repository를 하나의 Repository로 합치는 방법에 대해 쉽게 알아볼 것이다. 이 과정을 진행한 후에 기존에 있던 Repository를 삭제해도 이전에 남겼던 git commit 기

backendcode.tistory.com

캠프 진행하면서 점점 레포가 많아져서 한곳에 모아두고 싶어 합쳐주는 작업을 했다.

- 학교에서 했던 과제 레포

- 학교 현장실습, 인턴십 프로젝트

- 알고리즘 풀이

- 혼자 공부한 것들 (강의 따라한 것 등)

나중에 캠프 끝나면 캠프 관련 레포도 다 합쳐놔야겠다.


백준 JS 알고리즘 환경설정

https://velog.io/@eundada064/%EB%B0%B1%EC%A4%80-JavaScript-VSCode-%ED%99%98%EA%B2%BD-%EC%84%B8%ED%8C%85

 

백준 JavaScript VSCode 환경 세팅

백준에 코드를 올리기 전에 JavaScript를 테스트할 수 있는 환경을 VSCode로 세팅하고자 한다. 1. Node.js 다운로드 1. vscode세팅 1) vscode 다운로드 2) Code Runner 다운로드 파일 위치 ; C:\Algorithm\Algor

velog.io


+) 개인 노션 페이지에 칸반 보드를 만들어서 할 일 관리를 시작해보았다.

근데 아직 노션 사용하는데 익숙하지가 않아서 고민중

완료한 것들을 따로 모아두고 싶은데 방법을 찾아봐야지...