java독학 6

[JAVA 자바] Arrays.sort() 를 이용한 배열 정렬(오름차순)

자바에서는 java.util.Arrays 클래스의 sort() 메서드를 이용해 배열을 정렬할 수 있다. JAVA api 문서에 가보면 자세한 설명을 볼 수 있는데, 나는 int형 배열을 정렬하는 경우를 정리해보겠다. 다른 자료형의 경우는 다음 링크에서 찾아보면된다. (util 패키지 -> Arrays 클래스) https://docs.oracle.com/javase/8/docs/api/ Java Platform SE 8 docs.oracle.com 배열 정렬 Arrays.sort() api 문서에 의하면 sort() 메서드의 정렬 알고리즘은 Dual-Pivot Quicksort 이다. 이 알고리즘의 시간복잡도는 평균 O(nlogn)이며 최악의 경우는 O(n^2)지만, 일반적으로 기존의 (one-pivot)..

[JAVA 자바] Math.random()을 사용한 난수 생성

자바의 정석으로 임의의 정수만들기(기초편 109쪽)를 공부하던 중에, 학교에서 C언어로 과제할 때 난수 생성을 자주 했던 기억이 있어서 뭔가 앞으로 두고두고 쓰일 함수라는 예감에 포스팅하게 되었다. Math.random() 메서드 Math.random() 메서드는 0.0과 1.0사이의 범위에 속하는 하나의 double값을 반환하는 함수이다. 반환하는 범위는 0.0 이상 1.0 미만임에 주의해야 한다. Math.random()을 간단하게 X라고 하면, 부등식을 이용해서 자신이 원하는 범위의 수를 표현할 수 있다. 0.0

[백준] 1929번 소수구하기/에라토스테네스의 체 -자바(JAVA)

https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net solved.ac에서 브론즈 문제만 건들이다가 맨 처음 건들인 실버 문제이다. 겁도없이 덤볐다가 꽤 고생했다. 시간초과가 떠버려서 내 코드가 틀린건지 맞는건지 알 수도 없는 상황이었다(ㅋㅋㅋ). 어쨌든 채점을 받기 위해선 먼저 시간을 줄여야 했다. 첫번째 시도 : M과 N 사이의 모든 수를 N 이하의 모든 수로 나누어보기 두번째 시도 : M과 N 사이의 모든 수를 N 이하의 모든 소수로 나누어보기 두번째 시도도 시간초과로 채점도..

[JAVA 자바] module 관련 오류 해결 (Error occurred during initialization of boot layer, java.lang.module.FindException)

JAVA의 정석 기초편(~25쪽)에서 하란대로 똑같이 했는데 다음과 같은 오류가 떠버렸다. 오류의 내용을 확인해보니, module을 읽는 과정에서 에러가 발생했고, Hello.class가 top-level directory에서 발견된다는 내용이다. 아래 사진에 하이라이트된 곳에 주목해보면 책과 뭔가 다름을 눈치챘을 것이다. module-info.java 라는 파일 안에 Hello 라는 이름의 모듈이 있는 것을 확인할 수 있는데, module-info.java 파일을 지우고 다시 실행하면 다음과 같이 정상 출력 된다. 이는 자바9 이상에서 발생하는 오류라고 하는데, 이런 고생을 하지 않기 위해선 애초에 프로젝트를 만들 때 Finish를 누르기 전 Create module_info.java에 체크박스 되어 ..

[JAVA 자바] 명령 프롬프트(cmd) 실행, 디렉토리 변경 + Hello, world.출력

명령 프롬프트 실행방법(Window) 윈도우에서 명령 프롬프트를 실행할 때는 둘 중 하나의 방법을 사용하면 됩니다. 윈도우키+R을 쳐서 나오는 실행창에 cmd 입력하여 실행 시작 메뉴 근처의 윈도우 검색창에 cmd 검색하여 실행 명령 프롬프트에서 디렉토리 변경하기 명령프롬프트에서 디렉토리를 변경하고자 할 때는 명령 프롬프트 창에 다음을 입력해주면 됩니다. cd는 Change Directory의 약자임을 기억하면 기억하기 쉬워요. cd (원하는 경로) 입력 c드라이브에서 d드라이브 내의 디렉토리로 이동할 경우엔 D: 입력 후 cd (원하는경로) 좀더 정확히 말하자면 cd+space바+원하는경로+enter를 입력하면 됩니다. 아래 사진은 cd+space바+C:\jdk1.8+enter를 입력한 경우입니다. 명..

1