| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 너비우선탐색
- 문제풀이
- Operating System
- 자료구조
- bfs
- 개발
- 그래프
- 코딩
- c++
- Stack
- 오퍼레이팅시스템
- 정석
- vector
- DP
- cs
- 컴퓨터공학과
- 컴공
- OS
- coding
- 북리뷰
- 백준
- 구현
- 브루트포스
- Computer science
- 알고리즘
- 정석학술정보관
- 오에스
- 코테
- 스택
- 컴공과
- Today
- Total
목록overflow (3)
Little Jay
앞서 설명을 진행하기 위해 우선적으로 2의 보수 체계를 이해할 필요가 있다. 컴퓨터는 이진수로 모든 데이터를 저장한다. 그러면 0과 음수를 어떻게 저장해야 할까? 일반적으로 생각했을 때 Sign Magnitude Representation(부호 절대값) 방식이 있다. 이는 맨 앞의 이진수를 부호로서 사용하는 것이다. 예를 들어 0000 = 0 0001 = 1 0010 = 2 1000 = 0 1001 = -1 1010 = -2 이런식으로 말이다. 이를 도식화 하면 아래와 같이 쓸 수 있다. 이 방식이 좋은 점: 표현 하기에 너무나 간편하다 직관적으로 10진수로 변환하기 쉽다 그러나 이 방식도 문제가 있는데, 0을 표현할때 0000, 1000 이렇게 두 가지의 표현이 나오게 된다. 연산이 복잡해진다. 예를들..
C++을 하다보면 내가 의도하지 않은 대로 컴파일되어 코드가 실행되는 경우가 있다. 개인적으로 생각할 때 for 반복문에서 조건 설정할 때 생각지도 못한 부분에서 실수를 많이 해 여기에 포스팅 해본다. #include #include using namespace std; int main() { string s = "aa"; for (int i = 0; i < s.length() - 3; i++) { cout
너무 어렵게 접근했던 문제이다. 뇌가 처음에는 너무 꼬여서 양수만 있을때, 음수있을때, 음수랑 0만 있을때, 0과 양수만 있을때 하나의 vector 컨테이너에서 조건문을 10개 이상 만들면서 처리를 하려고 했다. 너무 복잡해지자 이걸 어떻게 효율적으로 처리할까 고민하다가 양수와 음수를 따로 받는 방법을 생각하게 되었다. 1은 수를 묶을때 의미가 없다. 예를 들어 1 + 3 은 1 * 3 보다 무조건 크기 때문에 1이 들어올때는 바로 결과물을 담는 컨테이너에 담아주면 된다. 양수와 음수는 서로 묶어주지만 각 벡터의 개수가 홀수인지, 양수인지 구분해주면 된다. #include #include #include #define endl '\n' using namespace std; int n, cumsum; ve..