반응형
Notice
Recent Posts
Recent Comments
Link
지구정복
[자료구조] 백준 - 나는야 포켓몬 마스터 이다솜 본문
728x90
반응형
https://www.acmicpc.net/problem/1620
-문제해설
처음에 해시맵 두 개로 풀었는데 다른 분들 풀이를 보니 그냥 배열과 맵을 가지고도 충분히 풀 수 있는 문제였다.
먼저 필요한 거는 book1이란 배열과 book2란 해시맵이다.
book1의 인덱스는 입력되는 순서 1부터 26이 되고
각 인덱스의 값은 포켓몬 이름이 된다.
book2 해시맵에서는 book1과 반대로 키가 포켓몬 이름이 되고 값이 입력되는 순서가 된다.
그래서 다솜이가 문제를 맞혀야하는 것이 숫자라면
book1[ 숫자 ] 를 출력하면 포켓몬 이름이 출력되고
다솜이가 맞혀야하는 것이 포켓몬 이름이면
book2.get( 포켓몬이름 )을 출력하면 이름에 해당되는 순서가 출력된다.
파이썬에서는 자바의 맵형식을 대신할 수 있는 것이 딕셔너리 자료구조이다.
딕셔너리의 키에 포켓몬 이름을 넣고 값에 입력순서를 삽입하면 된다.
-자바
package search;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.StringTokenizer;
//BJ1620_1
public class BJ1620_1 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
st = new StringTokenizer( br.readLine() );
int n = Integer.parseInt( st.nextToken() ); //도감의 포켓몬 수
int m = Integer.parseInt( st.nextToken() ); //다솜이가 맞춰야되는 문제의 개수
String[] book1 = new String[n+1];
HashMap<String, Integer> book2 = new HashMap<String, Integer>();
for( int i=1; i<=n; i++ ) {
book1[i] = br.readLine();
book2.put( book1[i], i );
}
StringBuffer sb = new StringBuffer();
while( m --> 0 ) {
String input = br.readLine();
if( '1' <= input.charAt(0) && input.charAt(0) <= '9' )
sb.append( book1[ Integer.parseInt(input) ] ).append( "\n" );
else sb.append( book2.get(input) ).append( "\n" );
}
System.out.println( sb );
}
}
-파이썬
import sys
l = sys.stdin.readline
n, m = map(int, l().split())
book1 = []
book2 = {}
ans = []
for i in range( 1, n+1 ):
name = l().rstrip()
book1.append( name )
book2[ name ] = i
for _ in range( m ):
po = l().rstrip()
if po.isdigit(): ans.append( book1[ int(po)-1 ] )
else: ans.append( str( book2[po] ) )
print( "\n".join( ans ) )
728x90
반응형
'데이터 엔지니어링 정복 > Algorithm' 카테고리의 다른 글
[자료구조] 백준 - 듣보잡 (0) | 2021.08.05 |
---|---|
[수학] 백준 - 팩토리얼 0의 개수 (0) | 2021.08.04 |
[DP] 백준 - Four Squares (0) | 2021.08.04 |
[비트마스크] 백준 - 집합 (0) | 2021.08.03 |
[수학] 백준 - 소수 구하기 (0) | 2021.08.03 |
Comments