본문 바로가기

전체 글133

[백준 알고리즘/ C++] BOJ.10828 스택 문제 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 풀이 자료구조 - int stack[] : 스택을 구현하기 위한 배열 - int top : top의 역할을 하는 변수 - int data : 입력 값 - int num : 테스트 입력 수를 저장하는 변수 - int count : 실행횟수 세기 위한 변수 알고리즘 - 스택 - 자료구조 코드 - C++은 string이라는 문자열을 처리하기에 유리한 변수가 있기 때문에 사용 - .. 2022. 1. 30.
[일상/기타 등등] 양모 펠트로 코코 만들기 예전에 인터넷을 떠돌다가 털 뭉치를 바늘로 콕콕 찔러서 인형을 만드는 걸 본 적이 있다. 자기 반려동물 털을 모아서 똑같이 생긴 인형을 만드는 것이었다. 나도 우리 코코 털로 고양이 인형을 만들고 싶었지만, 이놈 새키는 털 빗는걸 워낙 싫어해서 재료를 수집할 수가 없었다. 그래서 인터넷에서 양모펠트 인형 만들기 키트를 찾아서 구매했다. 패키지를 구매하면 설명서와 함께 저런 구성으로 배송이 온다. 어떻게 만드는지 설명서도 함께 오는데, 영문 설명서지만 사진으로 잘 나와있기 때문에 쉽게 알아볼 수 있다. 나는 몬스터 고양이 캐릭터를 선택했지만, 저건 무시하고 우리 코코 모양으로 만들 것이다. 머리 만들기 제일 먼저 머리를 만들어야 한다. 머리의 크기에 따라 비율이 결정되기 때문에 중요한 작업이라 할 수 있겠.. 2022. 1. 30.
[자료구조/C++] 스택(Stack) 스택이란? 인터넷을 돌아다니다 보면 "업보 스택 쌓는다"라는 말을 들을 수 있을 것이다. 무언가 잘못을 해서 업보를 차곡차곡 쌓는다는 뜻인데, 나중에 이를 그대로 돌려받을 때 "업보 청산" 한다고 한다. 여기서 스택의 뜻을 대충 유추할 수 있는데, 스택은 업보와 같이 동일한 구조의 데이터를 차곡차곡 쌓는 것을 말한다. 스택의 특징 스택의 대표적인 특징으로는 "가장 마지막에 삽입된 데이터가 가장 먼저 삭제"되는 후입선출(LIFO:Last-In-First-Out)의 구조를 가진다는 것이다. 이러한 특징 때문에 스택에서는 가장 나중에 들어간 데이터 만을 조작할 수 있는데, 여기서 가장 위에 위치한 데이터를 top이라고 한다. 스택에서 삽입과 삭제는 모두 top을 통해서만 가능하다. 스택의 기능 스택에는 데이터.. 2022. 1. 25.
[자료구조/C++] 연결 자료구조와 연결 리스트(Linked List) 연결 자료구조 연결 자료구조는 각 원소에 저장되어 있는 다음 원소의 주소(링크)에 의해 순서가 연결되는 구현 방식의 자료구조를 뜻한다. 연결 자료구조의 원소는 '노드(Node)'라 불리며 원소의 값을 저장하는 '데이터 필드(Data Field)'와 다음 노드의 주소를 저장하는 '링크 필드(Link Field)'로 구성된다. 연결 자료구조가 나온 이유(순차 자료구조와의 비교) 우리가 자료구조를 생각할 때, 각 원소들이 어떻게 배치될 것이라고 머릿속으로 생각하는 것을 논리적 구조라 한다. 그리고 자료구조가 선언되어 실제로 메모리에 할당되어있는 구조를 물리적 구조라 한다. 연결 자료구조와 순차 자료구조는 이러한 특징에서 차이를 가진다. 순차 자료구조 순차 자료구조의 구현 방식은 논리적 구현 방식과 물리적 구현.. 2022. 1. 24.
[Java 공부/ Java의 정석] Chapter 05. 배열 배열 배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것 을 말한다. 즉, 연관이 있는 같은 타입의 변수를 여러 개 쓰기 귀찮으니 배열로 묶어서 한 번에 관리하겠다는 뜻이다. int score1, score2, score3, score4, score5; //귀찮음 int[] score = new int[5] //score[0~4]까지 5개 생성 배열을 사용하면 위와 같이, 같은 타입의 변수를 간단하게 나타낼 수 있다. 배열의 선언과 생성 타입[] 변수 이름; //배열 선언 변수 이름 = new 타입[길이]; //배열 생성 타입[] 변수 이름 = new 타입[길이]; //배열의 선언과 생성을 한번에 //예시 int[] score = new int[5] 자바에서 배열을 선언하고 생성하는 것은 C++에.. 2022. 1. 23.
[Java 공부/ Java의 정석] Chapter 03. 연산자 & Chapter 04 : 조건문과 반복문 연산자 연산자 파트는 어느 프로그래밍 언어를 봐도 비슷하기 때문에 특별하게 신경 쓸 부분이 없어서 간단하게 표로 정리만 하고 넘어가겠다. 종류 연산자 설명 산술 연산자 + - * / % > 사칙 연산(+,-,*,/)과 나머지 연산(%), 비트 연산() 비교 연산자 > = 90) { //만약 score이 80 이상이면 break;//조건문 탈출 } ++i; score += i; //score = score + i } System.out.println("i = " + i);//i = 5 Sysetm.out.println("score = " + score); //score = 95 break문을 쓸 수 있는 간단한 예시다. i score i = 0 score = 80 (초기 상태) i = 1 score .. 2022. 1. 23.