2020-09-22 문제 정수 X가 주어진다. 정수 X는 항상 8진수, 10진수, 16진수 중에 하나이다. 8진수인 경우에는 수의 앞에 0이 주어지고, 16진수인 경우에는 0x가 주어진다. X를 10진수로 바꿔서 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 X가 주어진다. X는 10진수로 바꿨을 때, 1,000,000보다 작거나 같은 자연수이다. 16진수인 경우 알파벳은 소문자로만 이루어져 있다. 출력 첫째 줄에 입력받은 X를 10진수로 바꿔서 출력한다. 소스코드 Scanner scan = new Scanner(System.in); String X = scan.next(); String N =""; int N8 = 0; //8진수 값이 저장될 변수 int N16 = 0; //16진수 값이 저장될 변수..
2020-09-16 문제 어떤 파일 시스템에는 디스크 공간이 파일의 사이즈와 항상 같지는 않다. 이것은 디스크가 일정한 크기의 클러스터로 나누어져 있고, 한 클러스터는 오직 한 파일만 이용할 수 있기 때문이다. 예를 들어, 클러스터의 크기가 512바이트이고, 600바이트 파일을 저장하려고 한다면, 두 개의 클러스터에 저장하게 된다. 두 클러스터는 다른 파일과 공유할 수 없기 때문에, 디스크 사용 공간은 1024바이트가 된다. 파일의 사이즈와 클러스터의 크기가 주어질 때, 사용한 디스크 공간을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 파일의 개수 N이 주어진다. N은 1,000보다 작거나 같은 자연수이다. 둘째 줄에는 파일의 크기가 공백을 사이에 두고 하나씩 주어진다. 파일의 크기는 1,000,00..
2020-09-10 선택 정렬(選擇整列, selection sort)은 제자리 정렬 알고리즘의 하나로, 다음과 같은 순서로 이루어진다. 주어진 리스트 중에 최솟값을 찾는다. 그 값을 맨 앞에 위치한 값과 교체한다(패스(pass)). 맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체한다. 비교하는 것이 상수 시간에 이루어진다는 가정 아래, n개의 주어진 리스트를 이와 같은 방법으로 정렬하는 데에는 Θ(n2) 만큼의 시간이 걸린다. 선택 정렬은 알고리즘이 단순하며 사용할 수 있는 메모리가 제한적인 경우에 사용 시 성능 상의 이점이 있습니다. 출처 : 위키피디아 말은 어려워 보일 수 있지만 무작이로 정렬되어 있는 배열 4 8 9 10 2 1 3 5 6 7을 1 2 3 4 5 6 7 8 9 10처럼 최솟값..
2020-09-09 안녕하세요~! 오늘은 입력한 임의의 숫자 n에 대하여, 해당 수의 배수와 그들의 합 개수를 구해보도록 하겠습니다. 어렵지 않은 내용이니 바로 코드 첨부 후 설명하도록 하겠습니다. 소스코드 ※ 우선 변수를 설명하겠습니다. mok : 범위 변수 i 나누기 입력된 변수의 값이 저장 nmg : 범위 변수 i 나누기 입력된 변수 후 나머지 값이 저장 → 코드 진행간 0인지 아닌지 여부 체크 할 예정 모든 배수를 구하고자 하면 범위가 무한대로 증가하기 때문에 1 ~ 100 까지 범위를 한정지어 코드를 작성했습니다. //n의 배수의 개수와 합 구하기 Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int mok, nmg; int su..
2020-09-08 1의 보수 1의 보수란 어떤 수를 커다란 2의 거듭제곱수-1에서 빼서 얻은 이진수이다. 또는 비트를 반전시켜 얻을수 있다. 1의 보수는 대부분의 산술연산에서 원래 숫자의 음수처럼 취급된다. 주어진 이진수와 자리수가 같고 모든 자리가 1인 수에서 주어진 수를 빼서 얻은 수가 1의 보수이다. 혹은 주어진 이진수의 모든 자리의 숫자를 반전(0을 1로, 1을 0으로)시키면 1의 보수를 얻을 수 있다. 2의 보수 2의 보수(--補數, 영어: two's complement)란 어떤 수를 커다란 2의 제곱수에서 빼서 얻은 이진수이다. 2의 보수는 대부분의 산술연산에서 원래 숫자의 음수처럼 취급된다. 주어진 이진수보다 한 자리 높고 가장 높은 자리가 1이며 나머지가 0인 수에서 주어진 수를 빼서 얻..
2020-09-07 오늘은 특정 배열 내에서의 최댓값과 최솟값을 구하는 방법을 알아보도록 하겠습니다. 숫자의 범위는 이해를 쉽게 하기 위해 1~10까지의 수가 들어간 배열을 산정하였습니다. 소스코드 a = 1부터 증가하는 숫자가 들어갈 배열 ex) a[0] 1이 들어갈 예정; int i = 0; int [] a = new int[10]; int count = 0; //1씩 증가되는 수가 저장될 변수 int max = 0, min = 10000; //최댓값과 최솟값이 들어갈 변수; do { count++; a[i] = count; if(max = a[i]) { min = a[i]; } //배열에 삽입된 값이 최댓값인지 최솟값인지 //계속 비교하며 값은 갱신함 i++; //배열의 위치를 하나씩 증가시켜준다...