DY N DY

실력키우기 문자열변환(JAVA) 본문

PARK/ALGORITHM

실력키우기 문자열변환(JAVA)

손세지 2016. 6. 3. 10:11

2518 : 문자열변환

제한시간: 1ms    메모리제한: 32MB
해결횟수: 771회    시도횟수: 2030회   



현석이가 책을 발간하기 위해서 원고를 작성하여 출판사에 보냈다. 며칠 후 출판사에서 택배로 초안을 보내왔다.

현석이는 초안을 읽어보다가 오타를 발견하였다. 그런데 오타가 한글자만 있는 것이 아니어서 수정해야하는 문자를 기록하여 다시 출판사로 보내주었다.

여기서 문자란 숫자를 포함하며, 대소문자를 구별한다. 즉, 대문자와 소문자는 다른 문자이다.

당신이 할 일은 현석이가 보내온 정보를 가지고 제대로 수정된 문장을 출력하는 것이다.

 

입력의 첫줄에는 수정해야하는 정보의 개수 n(n≤50)이 들어온다. 그 다음 줄부터 n개의 줄에 각각 2개씩의 문자가 들어오는데 이것은 첫 번째 문자를 두 번째 문자로 바꾸라는 것이다.
그다음 오타가 포함되어있는 문장의 문자개수 m(1≤m≤100,000)이 들어오고 그 다음부터 m개의 문자가 들어온다.



출력은 m개의 문자를 수정하여 한 줄에 공백 없이 출력한다.


 [Copy]
3
A a
0 5
5 4
10
A
B
C
0
1
4
5
a
b
A
 [Copy]
aBC5144aba


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
44
/**************************************************************
    Problem: 2518
    User: a132034
    Language: Java
    Result: Success
    Time:549 ms
    Memory:18344 kb
****************************************************************/
 
 
import java.util.Scanner;
 
public class Main
{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
         
        sc.nextLine();
        char[][] proofread = new char[n][2];
        for(int i = 0; i < n; ++i){
            String input = sc.nextLine();
            proofread[i][0] = input.toCharArray()[0];
            proofread[i][1] = input.toCharArray()[2];
        }
         
        int m = sc.nextInt();
        char []str = new char[m];
        for(int i = 0 ; i < m; ++i)
        {
            char tmp = sc.next().charAt(0);
            for(int j = 0 ; j < n; ++j)
            {
                if(tmp == proofread[j][0]){
                    tmp = proofread[j][1];
                    break;
                }
            }
            str[i] = tmp;
        }
         
        System.out.println(str);
    }
}


알고리즘 문제라기 보다는 단순 코딩문제같았다. 

map같은걸 써도 되지만.. 그냥 2차원 배열을 이용했고, 그냥 for loop를 돌며 만약 바꿔야 할 것이 나오면 바꾸어주었다. 

특별한 스킬같은건 없다..

'PARK > ALGORITHM' 카테고리의 다른 글

실력키우기 타일교체(C++)  (0) 2016.06.28
실력키우기 섞기수열(C++)  (0) 2016.06.28
실력키우기 소수와 합성수(JAVA)  (0) 2016.06.03
실력키우기 소수의개수(JAVA)  (0) 2016.06.02
실력키우기 소수(JAVA)  (0) 2016.06.01