1230 암호문3

Sungmin·2023년 11월 9일
0

SWEA 알고리즘

목록 보기
19/26

링크텍스트

내 풀이

import java.io.*;
import java.util.*;
 
public class Solution {
    static StringBuilder sb = new StringBuilder();
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
         
        for (int t = 1; t <= 10; t++) {
            int N = Integer.parseInt(br.readLine()); //첫번째줄
            List<Integer> list = new LinkedList<>();
            StringTokenizer st = new StringTokenizer(br.readLine());
             
            for (int i = 0; i < N; i++) {    
                list.add(Integer.parseInt(st.nextToken()));
            }
            int M = Integer.parseInt(br.readLine()); //세번째줄
            st = new StringTokenizer(br.readLine()); //네번째줄
 
            for (int i = 0; i < M; i++) {  
                if (st.nextToken().equals("I")) {
                    int x = Integer.parseInt(st.nextToken());
                    int y = Integer.parseInt(st.nextToken());
 
                    for (int j = 0; j < y; j++) {
                        list.add(x, Integer.parseInt(st.nextToken()));
                        x++;
                    }
 
                } else if (st.nextToken().equals("D")) {
                    int x = Integer.parseInt(st.nextToken());
                    int y = Integer.parseInt(st.nextToken());
                     
                    for (int j = 0; j < y; j++) {
                        list.remove(x);
                    }
 
                } else if (st.nextToken().equals("A")) {
                    int y = Integer.parseInt(st.nextToken());
 
                    for (int j = 0; j < y; j++) {
                        list.add(Integer.parseInt(st.nextToken()));
                    }
                } 
            }
            sb.append("#").append(t).append(" ");
            for (int i = 0; i < 10; i++) {
                sb.append(list.get(i)).append(" ");
            }
            sb.append("\n");
        }
        System.out.println(sb);
    }
}

Solution

import java.io.*;
import java.util.*;
 
public class Solution {
    static StringBuilder sb = new StringBuilder();
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
         
        for (int t = 1; t <= 10; t++) {
            int N = Integer.parseInt(br.readLine()); //첫번째줄
            List<Integer> list = new LinkedList<>();
            StringTokenizer st = new StringTokenizer(br.readLine());
             
            for (int i = 0; i < N; i++) {    
                list.add(Integer.parseInt(st.nextToken()));
            }
            int M = Integer.parseInt(br.readLine()); //세번째줄
            st = new StringTokenizer(br.readLine()); //네번째줄
 
            while (st.hasMoreTokens()) {
                String cmd = st.nextToken();  
                if (cmd.equals("I")) {
                    int x = Integer.parseInt(st.nextToken());
                    int y = Integer.parseInt(st.nextToken());
 
                    for (int j = 0; j < y; j++) {
                        list.add(x, Integer.parseInt(st.nextToken()));
                        x++;
                    }
 
                } else if (cmd.equals("D")) {
                    int x = Integer.parseInt(st.nextToken());
                    int y = Integer.parseInt(st.nextToken());
                     
                    for (int j = 0; j < y; j++) {
                        list.remove(x);
                    }
 
                } else if (cmd.equals("A")) {
                    int y = Integer.parseInt(st.nextToken());
 
                    for (int j = 0; j < y; j++) {
                        list.add(Integer.parseInt(st.nextToken()));
                    }
                } 
            }
            sb.append("#").append(t).append(" ");
            for (int i = 0; i < 10; i++) {
                sb.append(list.get(i)).append(" ");
            }
            sb.append("\n");
        }
        System.out.println(sb);
    }
}

배운점

최근에 풀었던 암호문2 문제와 거의 유사한 문제였다.

풀이 방식도 크게 다르지 않아 쉽게 풀어나갔는데 계속 결과가 다르게 나오는 일이 발생하였다.

문제는 입력을 잘못받고있었다.

내 풀이에서 보면 st.nextToken()을 조건 안에서 받았는데 암호2풀땐 문제가 안됐던게 확인할 문자가 "I" 밖에 없었기 때문이다.

이번엔 확인할 문자가 3개가 되었고 입력은 한번에 받아 확인해줘야 한다.

profile
Let's Coding

0개의 댓글

Powered by GraphCDN, the GraphQL CDN