inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조

동적배열(vector) ★★★

다른 언어를 사용할 경우

244

janeeee

작성한 질문수 2

0

안녕하세요.

알고리즘 문제를 파이썬 언어를 사용해서 공부하고있는데,

동적배열 강의에서 말씀해주신 push_back(), pop_back()과 같은 메서드는 C++ 에서만 사용 가능해서

해당 강의는 어디까지만 이해하고 넘어가야할지,

push_back()과 같은 기능을 하는 함수가 파이썬에도 있는지 찾아보며 강의를 들어야하는지..

다른 언어로 준비할 때 어디까지 이해하고 적용해야하는지에 대한 감이 안잡혀(?) 문의 드립니다.

 

면접 운영체제 기술면접

답변 1

0

큰돌

안녕하세요 ㅎㅎ

push_back()과 같은 기능을 하는 함수가 파이썬에도 있는지 찾아보며 강의를 들어야하는지..

다른 언어로 준비할 때 어디까지 이해하고 적용해야하는지에 대한 감이 안잡혀(?) 문의 드립니다.

>>

python 등 다른 언어를 하나이상을 아신다면 이정도의 C++언어는 쉽게 이해하실 것 같습니다.

다만 이해가 안되신다면

그냥 앞에 집어넣는다 또는 뒤에 집어넣는다 의미만 이해하고 넘어가셔도 되긴하지만... 저한테 질문을 주셔서 이해를 하고 C++를 한번 테스팅하고 넘어가는게 좋을 것 같습니다.

즉, 이정도의 C++언어는 이해 + python과 대응해서 공부하시는게 좋을 것 같습니다.

예를 들어 다음의 코드는.

#include <bits/stdc++.h>
using namespace std; 
list<int> a; 
void print(list <int> a){
    for(auto it : a) cout << it << " ";
    cout << '\n'; 
}
int main(){ 
    for(int i = 1; i <= 3; i++)a.push_back(i);
    for(int i = 1; i <= 3; i++)a.push_front(i); 

    auto it = a.begin(); it++; 
    a.insert(it, 1000);
    print(a); 

    it = a.begin(); it++; 
    a.erase(it);
    print(a); 
    
    a.pop_front();
    a.pop_back(); 
    print(a);

    cout << a.front() << " : " << a.back() << '\n';  
    a.clear();
    return 0;
}
def print_list(a):
    for item in a:
        print(item, end=" ")
    print()

def main():
    a = []

    # C++의 push_back에 해당하는 파이썬 코드
    for i in range(1, 4):
        a.append(i)

    # C++의 push_front에 해당하는 파이썬 코드
    for i in range(1, 4):
        a.insert(0, i)

    # 특정 위치에 요소 삽입
    a.insert(1, 1000)
    print_list(a)

    # 특정 위치의 요소 제거
    del a[1]
    print_list(a)

    # 맨 앞과 맨 뒤의 요소 제거
    a.pop(0)
    a.pop()
    print_list(a)

    # 리스트의 맨 앞과 맨 뒤의 요소 출력
    print(a[0], ":", a[-1])

    # 리스트 비우기
    a.clear()

if __name__ == "__main__":
    main()

다음 처럼 python 코드로 나타낼 수 있습니다.

또한 대응을 한다면 다음과 같습니다. 이부분 참고해서 공부하시면 될 것 같습니다.

  • push_front = insert

  • erase = del

  • clear = clear

  • pop_back = pop()

  • pop_front = pop(0)


그리고 수강생님 말씀을 좀 생각해봤는데요.

python을 배웠어도 어려워할 수 있을 것 같아서

추후 C++ 이외에 다른 언어로도 포팅 -> 제공해서 쉽게 공부할 수 있도록 교안에 추가하도록 하겠습니다.


또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


0

janeeee

이렇게나 빠른 피드백 너무 감사드립니다.

잘 이해했습니다 ㅎㅎ 반영해서 공부해야겠네요.

감사드려요!

REST API (Self-descriptive messages)

0

28

1

시스템 엔지니어 관련 질문입니다.

0

52

2

오버라이딩 관련하여 질문드립니다.

0

62

2

교착상태의 4가지 필요조건이 필요충분조건이 아닌 이유

0

91

1

렌더 트리, 렌더 레이어와 그래픽 레이어

0

57

2

로컬스토리지, 세션스토리지, 쿠키의 공통점

0

68

1

IPv4가 IPv6보다 빠른 경우

0

101

2

UDP가 전송계층의 역할을 못하는 건 아닌지

0

59

1

Path MTU 발견하였음에도 패킷 분할이 필요한 이유?

0

65

2

교재의 LFU 알고리즘에서 6번이 왜 히트인가요?

0

64

2

페이지 교체 알고리즘? 프레임 교체 알고리즘?

0

83

2

Static 키워드가 메모리에 올라가는 시점

0

77

2

헤더 압축부분 질문드립니다

0

73

2

공유 캐시 관련 질문 드립니다.

0

56

2

컨텍스트는 context와 contextual information으로 나눠진다는게 무슨뜻인가요?

0

200

1

회선과 대역폭의 관계

0

62

2

44강 질문

0

94

2

버스 토폴로지 질문 있씁니다

0

55

1

자바스크립트, xml 문법 관련

0

66

2

전략패턴과 의존성주입 질문

0

69

2

Model이 비즈니스 로직을 담당하나요?

0

106

2

CS 공부 하는 법

0

181

2

큰돌님 블로그에 개념정리해서 올려도될까요!

0

137

2

FIN 세그먼트 질문

0

70

2