본문 바로가기

분류 전체보기67

[JAVA] toString() 오버라이딩으로 원하는 값 출력하기 Java에서 String을 출력하면 그대로 담긴 문자열을 출력한다. String s01="Java"; String s02=new String("월요일"); System.out.println(s01); //JAVA System.out.println(s02); //월요일 하지만 기본적으로 객체는 출력하면 주소값이 나오게 된다. ObjectExam oe1=new ObjectExam(); ObjectExam oe2=new ObjectExam("안녕"); System.out.println(oe1); // 주소값 System.out.println(oe2); // 주소값 왜 String은 주소값이 안 나오는걸까? 사실 s01, s02, oe1, oe2 전부 주소값이다. println(Object obj) 메소드는 인.. 2023. 3. 29.
[JAVA] System.currentTimeMillis()와 System.nanoTime()으로 시간 측정하기 System.currentTimeMillis() 현재 시간과 UTC(협정세계시)인 1970년 1월 1일 자정과의 차이로 밀리세컨드(1/1000초) 값을 반환 ⇒ 날짜와 날짜 사이의 갭을 구할 때 사용 long curLong = System.currentTimeMillis(); System.out.println(curLong); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss"); // HH 24시간 hh 12시간 String curTime = sdf.format(new Date(curLong)); System.out.println(curTime); // 시간을 측정할 실행 코드 long endLong = System.currentTime.. 2023. 3. 29.
백준 1197번: 최소 스패닝 트리 [JAVA] https://www.acmicpc.net/problem/1197 1197번: 최소 스패닝 트리 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 정점과 B번 정점이 www.acmicpc.net 풀이 최소 신장 트리는 크루스칼 알고리즘과 프림 알고리즘으로 해결할 수 있다. 나는 그 중 크루스칼 알고리즘을 풀었다. Edge 클래스를 만들어 각 간선의 정점, 가중치 값을 담고 가중치 오름차순으로 정렬했다. 가중치가 작은 것부터 시작해서 간선이 잇는 두 정점이 같은 그룹이 아니라면 선택하는 방식이다. 두 정점이 이미 같은 그룹이라면 다시 선택했을 .. 2023. 3. 27.
백준 14621번: 나만 안 되는 연애 [JAVA] https://www.acmicpc.net/problem/14621 14621번: 나만 안되는 연애 입력의 첫째 줄에 학교의 수 N와 학교를 연결하는 도로의 개수 M이 주어진다. (2 ≤ N ≤ 1,000) (1 ≤ M ≤ 10,000) 둘째 줄에 각 학교가 남초 대학교라면 M, 여초 대학교라면 W이 주어진다. 다음 M개의 www.acmicpc.net 풀이 크루스칼 알고리즘을 이용해 최소 신장 트리를 구하되, 간선을 선택할 때 여초와 여초, 남초와 남초가 이어진 경우는 제외한다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import.. 2023. 3. 27.