분류 전체보기145 [백준] 2292번: 벌집 문제 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다. 입력 첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다. 출력 입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다. #include int main() { int input; scanf("%d", &input);//입력값 받음 if(input == 1).. 2021. 1. 5. [컴퓨터구조개론] 5. Floating Point Arithmetic Floating Point Number Encoding(IEEE 754 Standard) Floating Point 실수는 아주 큰 숫자 또는 아주 작은 숫자도 포함한다. -2.34 * 10^56(normalized) +0.002 * 10^-4(not normalized) +987.02 * 10^9(not normalized) 위와 같은 표현을 scientific notation이라고 한다. 소수점 앞에 한자리수만 존재하고 0이 아니면 그걸 normalized 그렇지 못하면 not normalized라고 한다. 이진법에서는 +-1.xxxxxx * 2^yyyyy와 같이 표시된다. 중요한건 우리는 xxxxx와 yyyy정도 그리고 sign만 restore하면 된다 그러면 이 숫자를 읽어올 수 있다. Float.. 2020. 10. 20. [컴퓨터구조개론] 4. Integer Arithmetic Where are we? 이 수업에서 다루고 있는 내용은 ISA에서 RTL까지이다. ISA는 딱 하드웨어와 소프트웨어의 인터페이스이며 ISA를 지나면 소프트웨어는 그 밑에 부분을 볼 수 없다. Microarchitecture는 효율적으로 ISA를 implement한다. 캐쉬가 없이도 말이다. Clock speed, cache size, chips개수 등등을 결정해준다. 다만 오직 layout과 organization이 어떻게 구성이 되어있는지는 그 밑에 있는 부분으로부터 알 수 있다. 간단히 말하자면 간단한 정보는 알 수 있지만 그것이 어떻게 디자인 되어있는지는 알 수 없다는 것이다. Introduction 비트는 비트이다. 무슨 소리일까? 말 그대로 비트는 그냥 1아니면 0이다. 하지만 비트는 협약 같.. 2020. 10. 19. [컴퓨터구조개론] 3. MIPs Instruction and Set Architecture(2) Representing Instructions Mips에서는 4 byte = 1 instruction이다. $t0 ~ $t7은 reg’s 8 -15 $t8 ~ $t9은 reg’s 23 – 25 $s0 ~ $s7은 reg’s 16 – 23 MIPS R-format(encoding scheme) Instructions Op: operation code(opcode) 6비트 Rs: first source register number 5비트 Rt: second source register number or target register 5비트 Rd: destination register number(결과값이 저장되는 레지스터) 5비트 Shamt: shift amount 5비트 (추후에 더 자세히..) shift .. 2020. 10. 18. [컴퓨터구조개론] 2.MIPS Instruction and Set Architecture(1) Architecture 우리가 흔히 말하는 architecture와 컴퓨터시스템의 architecture와는 조금 다르다. 아키텍쳐의 정의: “the attributes of a system as seen by the programmer, the conceptual structure and functional behavior” 간단히 얘기하자면 소프트웨어와 하드웨어사이를 보이게 하는 interface이다. Interface의 예로 키보드, 마우스등이 있다. 하지만 여기서 얘기하는 interface는 instruction이다. Instruction을 통해서 소프트웨어가 하드웨어를 작동시키는 원리다. User(OS, compiler..)는 기계가 어떤원리로 작동하는지 알아야한다. 하지만 우리는 깊게는 알 필.. 2020. 10. 17. [컴퓨터구조개론] 1. Computer abstraction and technology computer revolution 현대의 revolution은 거진 끝나고 거의 모든 부분에 컴퓨터가 있다. 예)차, 스마트폰, 비행기 등… 이미 보편적 computer revolution뒤에는 무어의 법칙이 있었다. 무어의 법칙은 얼마나 컴퓨터가 빨리 진화하는 지 보여준다. (novel: 새로운) 무어의 법칙이란? 무어의 법칙은 1965에 제시되었다. 무어의 법칙은 microprocessor제작과 아키텍쳐에서 가장 중요한 가이드라인이다. “각칩의 트렌지스터가 18개월마다 두배가량 증가될 것이다.” 트렌지스터가 많을 수록 더 나은 performance를 시행할 수 있다. “칩이 더 복잡해질수록(기능이 좋아질수록) 제작시 쓰는 돈이 늘어날 것이다.” 무어의 법칙은 40년동안 실행이 되었다. 컴퓨터의 종류.. 2020. 10. 17. 야메 C언어 강좌: 10. 2차원 배열 저번 시간에 배열에 관하여 배워보았습니다. 배열은 많은 변수들을 저장하기 위해서 만들어 졌다고 했죠 그럼 혹시 배열의 배열을 만들어 보자라는 생각을 한 사람이 있을까요? 네 오늘은 바로 배열의 배열 2차원 배열을 배워보도록 하겠습니다. 2차원 배열은 마치 우리가 하나의 사각형모양의 저장공간이라고 생각할 수도 있습니다. 바로 위와 같은 모양의 저장공간으로 생각할 수 있겠습니다. 물론 "생각"을 말입니다!!! 아직 이 상자만 보면 어떤 의미인지 이해가 안될 수도 있기 때문에 우리가 int arr[2][4]을 선언했다고 예를 치면 밑처럼 데이터들이 있다고 "생각"을 하는 겁니다. 어떤가요? 이렇게 보니 2차원배열이 나름 쓸만한 녀석이라고 생각이 들지 않나요? 이런 모습이 마치 2D게임에서의 맵을 표현한 것 같.. 2020. 8. 1. C++ 공부 3일차 this는 자기 자신 즉 객체본인을 가리키는 포인터이다. 레퍼런스 본인을 리턴하는 함수. #include class anything{ int a; public: anything(int something) : a(something) {} int& ref() {return a; } int not_ref() {return a;} void show() { std::cout 2020. 7. 30. C++ 공부 2일차 지역변수의 레퍼런스를 리턴 int& function(){ int a = 2; return a; } int main(){ int b = function(); b = 3; return 0; } 위 코드는 컴파일 오류. 왜냐하면 function함수는 레퍼런스를 리턴하는 함수이다. 하지만 function함수는 리턴을 하게 되면 a는 사라지게 되고 int b는 a의 별명과 같다는 의미를 같게된다. b는 별명의 데이터와 같다고 명령받았지만 그 안의 실제 데이터인 a는 이미 사라져버린 상태이다. 이러한 레퍼런스를 댕글링 레퍼런스(dangling reference)라고 한다. *레퍼런스를 리턴하는 함수에서 지역 변수의 레퍼런스를 리턴하지 않도록 조심해야 한다. 외부 변수의 레퍼런스를 리턴 int& function(in.. 2020. 7. 28. 이전 1 ··· 9 10 11 12 13 14 15 ··· 17 다음