전체 글 136

[C] 중위수식을 후위수식으로 변환하는 문제에서 단항연산자 처리

1. 문제상황 백준 1918번 후위표기식 문제 https://www.acmicpc.net/problem/1918 ( 중위수식이 주어지면 후위수식으로 변환하는 문제 ) 를 풀었는데, 문제에서 고려하지 않아도 되는 케이스였던 " -A+B와 같이 -가 가장 앞에 오는 경우 " 를 해결하고 싶었다. 문제에서 생략된 케이스는 단항연산자 였는데, 단항연산자는 피연산자 (연산에 필요한 값)이 하나인 연산자를 말한다. 예를 들어, +3 , 3++ , !3 과 같은 경우에서의 연산자가 단항 연산자이다. 이중에서도 (-3), (+7)과 같이 부호를 나타내는 케이스를 풀 수 있게 만들고자 했다. 이와 반대되는 개념은 이항연산자로, 피연산자가 2개인 연산자를 말한다. 2+3, 4-7, 10*5와 같이 일반적으로 사용하는 연산..

[CSS] width와 height 값이 padding과 border 영역을 포함하는 방법 - box-sizing: border-box;

1. 문제상황 div 안에 div를 포함했는데, 내부에 있는 div가 원래 div의 영역을 벗어나서 출력되었다. 2. 문제 원인 내부 div의 padding과 border가 차지하는 영역 때문에 생긴 문제 였다. 내부 div의 크기가 width: 300px; height: 200px; 이 되길 원했지만. 내부 div의 padding과 border 영역은 그것과 별개로 공간을 차지했기 때문에 그것을 포함하게 되면 내부 div가 외부 div을 넘어서 표시되었다. padding과 border 영역이 차지하는 공간을 고려해서 width와 height를 수정해서 해결할 수 있었지만, 그렇게 번거로운 방법 대신 width와 height 값이 padding과 border 영역을 포함할 수 있게 하는 방법을 찾고 싶었..

[자료구조] - 4. 추상자료형, 리스트 ADT

추상자료형, 리스트 ADT 추상자료형(abstract data type, ADT): 데이터구조의 추상형 ADT는 다음을 명세 1. 저장된 데이터 2. 데이터에 대한 작업들 3. 작업 중 발생 가능한 에러 상황들 예: 주식거래 시스템을 모델링한 ADT 1. 데이터 : 구매, 판매 주문들 2. 지원하는 작업 : 주식 구매, 판매, 취소 3. 에러 상황 : 존재하지 않는 주식에 대한 주문 추상자료형(abstract data type, ADT)에 대해서 알아보겠습니다. 추상자료형은 자료구조를 추상적으로 표현한 것으로, 사람이 자료를 다루는 관점에서 자료구조를 표현한 것입니다. 쉽게 말하면 실제 기능의 구현방법을 제외하고, 기능이 무엇인지만 설명하는 것이 추상자료형입니다. 예를 들어 카카오톡을 추상자료형으로 나타..

[자료구조] - 3. 배열, 연결리스트

배열, 연결리스트 배열(array) : 순차 기억장소에 할당된 유한 개수의 동일 자료형 데이터원소들 베이스(base) : 배열의 첫째 셀 위치 오프셋(offset) : 해당 셀이 베이스로부터 떨어진 거리(변위차)를 나타내는 정수형 2차원 배열 : 테이블(table)이라고도 불림, 1차원과 2차원은 각각 행(row)과 열(column)로도 불림 이번 게시글에서는 자료구조를 구축하는 바탕인 배열과 연결리스트에 대해서 살펴보겠습니다. 자료구조는 비교적 추상적인 반면, 배열과 연결리스트는 상대적으로 구체적(컴퓨터 구조에 가까움)이기 때문에 자료구조를 배열과 연결리스트로 구현하게 됩니다. 배열은 비교적 간단한 개념인데요. 쉽게 이야기하면 데이터를 순차적으로 메모리에 배치한 자료구조 라고 할 수 있습니다. 오프셋(..

[자료구조] - 2. 재귀

재귀 재귀적(recursive) 알고리즘 : 알고리즘 자신을 사용하여 정의된 알고리즘 재귀의 요소 재귀 케이스(recursion) : 차후의 재귀호출은 작아진 부문제들(subproblems)을 대상으로 이루어진다 베이스 케이스(base case) : 부문제들이 충분히 작아지면, 알고리즘은 재귀를 사용하지 않고 이들을 직접 해결한다. 재귀 알고리즘에 대해서 살펴보겠습니다. '재귀(再歸)'라는 단어는 일상에 잘 쓰이지 않는 단어라 쉽게 이해되지 않는 것이 사실입니다. 재귀를 한자를 그대로 풀어보면 다시(再) 돌아오다(歸)라는 뜻입니다. 재귀를 부르는 원래 단어 recursion 역시 '반복, 되풀이' 라는 뜻입니다. 따라서, 재귀 알고리즘은 (자기 자신으로) 다시 돌아오는 알고리즘 이라고 할수 있겠습니다. ..

[자료구조] - 1. 개요, 원시작업, Big-Oh 표기법

자료구조 개요, 원시작업, Big-Oh 표기법 용어 정리 알고리즘(algorithm) : 주어진 문제를 유한한 시간 내에 해결하는 단계적 절차 데이터구조(data structure) : 데이터를 조직하고 접근하는 체계적 방식 “좋은” 알고리즘과 데이터구조 : 작업에 소요되는 실행시간과 기억장소 사용량이 작다. 자료구조를 공부하기에 앞서, ‘알고리즘’과 ‘자료구조(=데이터 구조)’라는 용어에 대해 먼저 정리해보았습니다. 우리의 목표는 “좋은” 알고리즘과 자료구조, 즉 작업에 소요되는 실행시간과 기억장소 사용량이 작은 알고리즘과 자료구조를 만드는 것입니다. 좀 더 쉽게 설명을 해보자면, 자료구조는 말 그대로 “자료(data)를 담는 구조”를 말합니다. 자료(data)를 어떻게 저장하고, 꺼내올 것인지를 배우..