Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 다이나믹프로그래밍
- spring
- COSPROJAVA1급
- DFS
- COSPRO
- deque
- 엘라스틱서치
- java
- 완전탐색
- BFS
- 세그먼트트리
- 게더타운시작
- dp
- 이젠 골드구현도 어렵네..
- 시뮬레이션
- PS
- 백준코딩테스트
- 알고리즘
- 우선순위큐
- 자바PS
- 백준
- QUICKSTARTGUIDE
- 구현
- 취득후기
- GatherTown
- 네트워크플로우
- YBMCOS
- 재귀함수
- 01BFS
- 다익스트라
Archives
- Today
- Total
공부공간
BOJ - 1620 ) 나는야 포켓몬 마스터 이다솜 본문
https://www.acmicpc.net/problem/1620
Java로 문제를 풀다가 Key,Value형식의 자료구조가 있는지 궁금했다.
Java에서는 Map의 인터페이스를 구현한 HashMap을 제공한다( 그외에도 WeakHashMap,TreeMap 등이있다)
즉 순서를 보장하지 않으면서 Key , Value로 자료에 접근하는 구조이다.
선언은
Map<Key , Value> M = new HashMap<>();
으로 하면서
M.put(key , value) , M.remove(Key)
M.get(key) 등의 방식으로 접근한다.
위 문제는 포켓몬에 관한 인덱스와 이름을 Key, Value로 HashMap에 전부 넣고
이 후 M개의 Key가 주어졌을때에 해당하는 값을 리턴해주면된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
package practice;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
public class POKETMON {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
String str_list[] = str.split(" ");
int N = Integer.parseInt(str_list[0]);
int M = Integer.parseInt(str_list[1]);
Map<String, String> m = new HashMap<>();
for(int index = 1 ; index <= N ; index++) {
String poketmon = br.readLine();
m.put(poketmon, Integer.toString(index));
m.put(Integer.toString(index) , poketmon);
}
for(int index = 1; index <=M ; index++) {
String Query = br.readLine();
System.out.println(m.get(Query));
}
}
}
|
s |
또한 입력시에
BufferedReader를 사용해보았다.
BufferedReader는 space enter로 구분되는 Scanner와 다르게
enter로만 구분된다. 그리고 입력값이 대부분 String으로 주어져 적절하게 파싱하는 작업이 필요하다.
Integer.parseint 메소드를 사용하여 스트링을 정수형태로 바꾸어주거나,
stringtokenizer를 이용해 공백을 기준으로 tokenize를 진행하여 필요한 요소만 뽑아온다.
나는 BufferedReader로 string을 받고 split으로 공백기준으로 잘라와서 하는편..
다양한 입력 방법을 습득해야겠다.
'알고리즘 > Hash' 카테고리의 다른 글
BOJ - 4195 ) 친구 네트워크 (0) | 2020.07.02 |
---|---|
SWEA ) 격자판에 숫자이어붙이기 (0) | 2020.02.09 |
Comments