Notice
Recent Posts
Recent Comments
Link
- Today
- Total
Archives
Tags
- 백준 #JAVA #자바
- JAVA #자바 #프로그래머스 #숫자의 표현
- SW공학
- JAVA #코드업 #기초 100제
- Could not resolve all files for configuration
- JAVA #프로그래머스
- JAVA #자바 #프로그래머스 #서울에서 김서방 찾기
- JAVA #자바 #프로그래머스 #두 정수 사이의 합
- 빌드 에러
- JAVA #자바 #프로그래머스 #나머지가 1이되는 수
- JAVA #프로그래머스 #문자열 내림차순으로 배치하기
- 나누어 떨어지는 숫자 배열 #자바 #JAVA #프로그래머스
- 자바 #프로그래머스 #JAVA #다음 큰 숫자
- 최대값과 최솟값
- JAVA #프로그래머스 #약수의 개수와 덧셈
- Java
- 문자열 다루기 기본 #자바 #JAVA
- JAVA #백준
- 자바 #프로그래머스 #JAVA #최솟값 만들기 #코딩테스트
- 스프링 #의존성 주입 #DI
- JAVA #핸드폰 번호 가리기 #프로그래머스 #자바
- 프로그래머스
- 자바 #JAVA #프로그래머스 #정수 내림차순으로 배치하기
- 게임 맵 최단거리 #자바 #JAVA #프로그래머스
- servlet
- 콜라츠 추측 #자바 #JAVA #프로그래머스
- 최대값과 최솟값 #자바 #JAVA
- 백준 #자바
- 데이터베이스 #DB #데이터 #정의 #기본
- IntelliJ #인텔리제이 #교육용
MOMONOTE
(문자열) (JAVA) 1764 듣보잡 본문
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
List<String> list= new ArrayList<>();;
List<String> list2= new ArrayList<>();;
for(int i=0;i<N;i++){
list.add(br.readLine());
}//듣도 못한 사람 list에 입력
for(int j=0;j<M;j++){
String M1 = br.readLine();
if(list.contains(M1)){
list2.add(M1);
}
}
System.out.println(list2.size());
Collections.sort(list2);
for(String a : list2){
System.out.println(a);
}
}
}
- 로직은 맞지만 시간초과가 발생한 코드
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
Set<String> set= new HashSet<>();
List<String> list= new ArrayList<>();
for(int i=0;i<N;i++){
set.add(br.readLine());
}//듣도 못한 사람 list에 입력
for(int j=0;j<M;j++){
String M1 = br.readLine();
if(set.contains(M1)){
list.add(M1);
}
}
System.out.println(list.size());
Collections.sort(list);
for(String a : list){
System.out.println(a);
}
}
}
- 성공코드
- HashSet과 ArrayList의 contains() 메서드의 시간복잡도 차이는 O(1) , O(n) ,
- ArrayList는 인덱스를 전부 검사하면서 같은 값이 있는지 비교하지만
- HashSet은 내부적으로 HashSet은 HashMap Instance를 구현하고 있고 contains() 메서드를 호출하게되면 HashMap.containsKey(object)가 호출된다고 보면 된다
'알고리즘, 코딩테스트 > (JAVA)백준' 카테고리의 다른 글
(JAVA) 백준 1712 손익분기점 (0) | 2021.06.09 |
---|---|
(JAVA) 백준 5622 다이얼 (0) | 2021.06.08 |
(문자열) (JAVA) 2902 KMP는 왜 KMP 일까? (0) | 2021.03.03 |
(문자열) (JAVA) 1100 하얀 칸 (0) | 2021.03.03 |
(문자열) (JAVA) 10808 알파벳 개수 (0) | 2021.02.27 |
Comments