오늘날 대부분의 컴퓨터는 폰노이만 구조를 따른다. 폰 노이만 구조는 애니악에서 사용했던 하드웨어 프로그램 방식이 아닌, 프로그램 내장 방식으로 프로그래밍과 컴퓨터의 유지보수를 훨씬 효율적으로 만들었다. 폰 노이만 구조 폰 노이만 구조 폰 노이만 구조는 위 그림처럼 중앙 처리 장치 (CPU), 메모리 (Memory), 프로그램 세 가지 요소로 구성되어 있다. CPU와 메모리는 서로 분리되어 있고 이 둘은 버스를 통해서 연결된다. 폰 노이만 구조의 구체적인 동작과정을 알아보기 위해, 폰 노이만 구조의 구성요소들을 살펴보자. 중앙 처리 장치 (CPU) 연산을 수행하고 명령어를 실행하는 핵심 부분으로 연산장치(Arithmetic Logic Unit, ALU)와 제어장치(Control Unit), 레지스터(Reg..
Scanner는 입력 하나하나가 바로 컴퓨터로 넘어가고 BufferedReader는 버퍼에 저장되었다가 한번에 데이터가 넘어간다 따라서 BufferedReader가 훨씬 빠르다. BufferedReader는 InputStreamReader()를 사용하고 System.in을 매개값으로 받는다. scanner도 System.in을 매개값으로 받는다. BufferedReader는 readLine()으로 한 줄 전체를 입력받고 Scanner는 nextInt()를 사용해 빈칸을 기준으로 정수를 입력받는다. ---------------------------------------------------------------------------------------------------------------------..
전공시간때 배웠지만 백준 11729 하노이탑 알고리즘 : 가장 마지막 과정을 생각해보면 n-1개의원반이 2번에 있고 마지막 원반을 1번에서 3번으로 옮긴 후 다시 2번에 있는 n-1개의 원반들을 3번으로 옮기는 과정이다. int hanoi(int n, int from, int mid, int to) { if (n == 1) { printf("%d %d\n", from, to); return; } hanoi (n - 1, from, to, mid); printf("%d %d\n", from, to); hanoi(n - 1, mid, from, to); } 원반 이동 횟수: 2^n-1 참고 [백준] 11729번 : 하노이 탑 이동 순서 - JAVA [자바] (tistory.com)
백준 11050 재귀함수 구현 방식에 따른 시간차이 한 단계 낮은 문제가 해결되고 이를 바탕으로 답을 얻을 수 있는 경우 재귀적 문제 해결방식을 고려해보아야 한다. 재귀함수 구현 시 주의사항 : 재귀함수를 사용하여 코드를 구현하면 스택에 함수가 쌓인 후 값이 차근차근 반환되므로 오버플로우가 발생할 수 있다. (함수호출반환에 오버플로우가 발생하거나 스택 오버플로우가 발생할 수 있다.) 따라서 아래의 코드에 시간초과가 발생하였다. 시간초과 코드 #define _CRT_SECURE_NO_WARNINGS #include int factorial(int n) { if (n == 1) return 1; return n * factorial(n - 1); } int main(void) { int n, k; int r..