728x90
반응형
안녕하세요 놀이방사장입니다.
이번 포스팅은 백준 10815
"숫자카드" 포스팅입니다.
10815번: 숫자 카드
첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,
www.acmicpc.net
문제설명)
조건을 보면 두 숫자에 중복된 숫자가 주어진 경우는 없다고 되어있습니다.
그리고 두번째 줄 기준으로 첫번째 줄에 있는 숫자가 있으면 1을 출력하고 없을 경우 0을 출력해주면 됩니다.
저는 HashMap을 사용했습니다.
package me.joyeonggyu;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.StringTokenizer;
public class Main{
public static StringBuilder sb = new StringBuilder();
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
HashMap<String, Integer> card = new HashMap<>();
StringTokenizer st;
int n = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine());
for(int i=0; i<n; i++){
card.put(st.nextToken(), 0);
}
int n2 = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine());
for(int j=0; j<n2; j++){
if(card.get(st.nextToken()) != null){
sb.append("1"+" ");
}else{
sb.append("0"+" ");
}
}
bw.write(sb.toString());
bw.flush();
bw.close();
}
}
이렇게 풀어주면 됩니다.
저는 처음에 list.contains()로 풀었는데 시간초과가 나더라구요 그래서 hashMap방법이 더 좋은 거 같습니다.
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준 15650] - N과 M (2) - JAVA [DFS] (1) | 2024.01.30 |
---|---|
[백준 9461] 파도반 수열 - JAVA [DP] (1) | 2024.01.30 |
[백준 2579] - 계단오르기 - JAVA [DP] (0) | 2024.01.29 |
[백준 11726] 2*n 타일링 - JAVA [DP] (0) | 2024.01.29 |
[백준 1003] 피보나치 함수 - JAVA - [DP] (1) | 2024.01.28 |