본문 바로가기 메뉴 바로가기

동찬 코드 일지

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

동찬 코드 일지

검색하기 폼
  • 분류 전체보기 (92)
    • 개발자 성장 (7)
    • 자바스크립트 (19)
    • 자바 (8)
    • 백엔드 (1)
    • 프로젝트 (10)
      • 파일 내용 탐색 프로그램 (7)
      • 민원 처리 웹 서비스 (3)
    • C++ (11)
      • 자료구조 알고리즘 (4)
      • 알고리즘 문제 (1)
    • 파이썬 (30)
      • 그리디 (3)
      • DP (4)
      • 그래프 (6)
      • 다익스트라 (6)
      • 삼성 SW 역량 테스트 기출 문제 (2)
      • 완전탐색 (4)
  • 방명록

C++ (11)
변수와 메모리

C++은 개발자가 직접 메모리를 관리해야 하는 언어이다. 이 때문에 타 프로그래밍 언어 보다 로우레벨의 지식과 컴퓨터 구조에 대해 깊은 이해도가 필요하다. 오늘은 C++의 변수와 메모리 관리에 대해 알아보자 변수 - 변수는 메모리에 할당 될 때 stack 메모리에 쌓이면서 할당 된다. std :: cout

C++ 2023. 11. 3. 18:52
Type size in Memory

# 목표 Cpp 에서 각 변수 마다 메모리를 어떻게 allocation (할당) 되는지 알아보는 시간을 가진다. 시작하기 전, 변수에 대한 내용을 정리하고 시작 하겠다. # 변수 1. 실제 메모리는 Stack 구조로 쌓인다. 2. 변수에 접근하는 방법은 탑 위치 ( Stack의 맨위) 에서 몇 번째 떨어져있는지 확인 하며 변수의 위치 확인 2-1. Low level로 설명하면 격자 같이 메모리에 저장된다. # 변수의 주소값을 확인하는 코드 # 내용 이번 내용에서는 메모리의 크기 (size)가 어떻게 할당 되는지 확인해본다. 일단 1 바이트는 1 byte = 8 bit int = 4 byte Cpp의 sizeof() 함수는 해당되는 변수나 자료형의 크기를 바이트 단위로 반환한다. 다른 자료형의 크기는 해당..

C++ 2023. 11. 2. 21:03
Linked List

이번에는 순차 자료구조 중 첫번째 Linked List를 학습하였다. Liked List는 C언어의 순차적으로 저장되는 배열과 비슷하지만, 저장되는 메모리 주소가 직접적 연결되어 있지 않고 논리적인 포인터를 활용하여 다음 값의 주소값을 이전값이 가지고 있다는 특징이 있다. 이로인해 배열 중간에 값을 추가할때 시간복잡도가 훨씬 효율적이다. 먼저 Linked List의 ADT를 정리하였다. Operations: void ListInit (List * plist); - 초기화 할 리스트이 주소값 인자로 전달 - 리스트 생성 후 제일 먼저 호출 되어야 함 void LInstert (List * plist, Ldata data); - 첫 번째 데이터가 pdata가 가리키는 메모리에 저장된다. - 데이터의 참조를 ..

C++/자료구조 알고리즘 2023. 10. 18. 20:37
추상 자료형 Abstarct Data Type

ADT란 - 순수하게 기능이 무엇인지 나열한 것 예) 자판기의 ADT 동전의 삽입 상품 선택 상품 제공 거스름돈 추출 정리해보면 이와같이 원리와 기능의 완성과정을 언급하지 않고 순수하게 사용자 관점에서 기능이 무엇인지 나열한 것 실제 코드 예시 int PutMoney (int coinNum, int billNum) - 인자로 coinNum과 billNum 전달 - 넣은 만큼 지불한 돈 증가 # 자료 구조를 구현 할 때의 과정 순서 1. 자료구조의 ADT 정의 2. ADT를 근거로 해당 자료구조를 활용하는 main 함수 정의 3. ADT를 근거로 리스트를 구현 ADT가 무엇인지 간단히 정리하여 보았다. 정확히 어떠한 개념인지 아직까지는 크게 와닿지는 않지만, 자료구조를 학습하면서 동시에 ADT 계속 정의함..

C++/자료구조 알고리즘 2023. 10. 16. 21:36
하노이 타워 / 재귀

내가 재귀를 처음 배울 당시 재귀의 활용성과 유용함을 인지하지 못한 채로 학습하였다. 재귀의 특성을 잘 활용하기만 한다면, 매우 어렵고 복잡해 보이는 문제도 간결한 코드를 만들 수 있다는 것을 체감 하기 전까지 그랬었다. 하노이 타워는 그러한 재귀의 유용성을 직접 피부로 느낄 수 있게 되었다. 본격적으로 하노이 타워가 어떤 문제인지 살펴보자 '하나의 막대에 쌓여 있는 원반을 다른 하나의 원반에 그대로 옮기는 방법'에 관한 것이다. 3개의 막대 A, B, C가 주어져있을때 A에 꽂혀있는 모든 각각 크기가 다른 원반을 막대 C로 옮겨야 한다. 이때 제약조건이 있다. 1. 원반은 한번에 하나씩만 옮길 수 있다. 2. 작은 원반위에 큰 원반이 올 수 없다. 글로 설명하면 이해가 쉽지 않으니 그림을 첨부 하였다...

C++/자료구조 알고리즘 2023. 10. 14. 17:35
달리기 경주 (프로그래머스 레벨1 C++) 스왑

https://school.programmers.co.kr/learn/courses/30/lessons/178871?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr C++을 이용하여 처음으로 푼 알고리즘 문제이다. 처음 접근 방법은 단순히 완전탐색을 이용하여 callings의 값을 가지는 players 의 인덱스 값을 찾은 뒤 바로 앞 인덱스 i - 1 과 i 를 스왑하는 방법으로 문제를 풀이 했다. vector solution(vector players, vector callings) { vector answer; int size ..

C++/알고리즘 문제 2023. 10. 13. 00:19
이전 1 2 다음
이전 다음
공지사항
  • 3학년 2학기 기말고사 기간
  • 3학년 2학기 중간고사 기간
  • 프로필
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
  • Git hub
  • 백준
TAG
  • 그래프 순회
  • 백준
  • 파이썬
  • JSON
  • 덱
  • 함수
  • 다익스트라
  • deque
  • 변수
  • 그래프
  • dp
  • BFS
  • C++
  • 메모리
  • 골드5
  • 그래프 탐색
  • 알고리즘
  • 브루트포스
  • 프론트엔드
  • 자료구조
  • javascript
  • 가중치 그래프
  • Bottom-up
  • 완전탐색
  • 재귀
  • 시뮬레이션
  • dfs
  • 파일 내용 찾기 프로그램
  • 힙
  • os모듈
more
«   2025/10   »
일 월 화 수 목 금 토
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바